如何将 dput() 的输出分配给对象或在每个单词后插入双引号和逗号?

How to assign the output of dput() into an object or insert the double quote and then comma after every words?

我有一个这样的数据框:

x <- data.table(c('ACCN-NJ-A55O-01A-11D-A25L-08','ACCN-NJ-A55O-11D-11D-A25L-08', 'ACCN-05-4249-01A-01D-1105-08', 'ACCN-S2-AA1A-15C-12D-A397-08'))

现在我想把每一个字都放在双引号里面,然后放一个逗号。我尝试了 dput、cat、paste 等,但它们 return 打印而不是分配给对象。我需要将它分配给一个对象以将其复制到剪贴板。我试过 dput 和 dget

dput( x$V1, "names")
xx <- dget("names")
xxxx <- cat(paste0('"', paste(xx, collapse="\", \""), '"'))

它return 预期的输出像

"ACCN-NJ-A55O-01A-11D-A25L-08", "ACCN-NJ-A55O-11D-11D-A25L-08", "ACCN-05-4249-01A-01D-1105-08", "ACCN-S2-AA1A-15C-12D-A397-08"

但我想将它分配给一个对象。 任何帮助,将不胜感激。提前致谢

write.table 到剪贴板有效。

    write.table(t(as.vector(x)), "clipboard", row.names = FALSE, col.names = FALSE, sep = ",")

然后 ctrl+V 到脚本 returns

    "ACCN-NJ-A55O-01A-11D-A25L-08","ACCN-NJ-A55O-11D-11D-A25L-08","ACCN-05-4249-01A-01D-1105-08","ACCN-S2-AA1A-15C-12D-A397-08"

我不确定这是不是你想要的。

你可以使用-

val <- sprintf('"%s"', x$V1)
val

#[1] "\"ACCN-NJ-A55O-01A-11D-A25L-08\"" "\"ACCN-NJ-A55O-11D-11D-A25L-08\""
#[3] "\"ACCN-05-4249-01A-01D-1105-08\"" "\"ACCN-S2-AA1A-15C-12D-A397-08\""

请注意,R 转义 " 因此您会看到带反斜杠的引号。可以看到“真实”字符串 cat.

cat(val)

"ACCN-NJ-A55O-01A-11D-A25L-08" "ACCN-NJ-A55O-11D-11D-A25L-08" 
"ACCN-05-4249-01A-01D-1105-08" "ACCN-S2-AA1A-15C-12D-A397-08"

如果您希望输出的长度为一个逗号分隔的字符串,请使用 toString(val).