【问题标题】:How to assign the output of dput() into an object or insert the double quote and then comma after every words?如何将 dput() 的输出分配给一个对象或在每个单词后插入双引号和逗号?
【发布时间】:2021-10-23 12:23:41
【问题描述】:

我有一个这样的数据框:

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 等,但它们返回打印而不是分配给对象。我需要将它分配给一个对象以将其复制到剪贴板。我试过 dput 和 dget

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

它返回预期的输出,如

"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"

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

【问题讨论】:

标签: r tidyverse tidyr dput


【解决方案1】:

write.table 到剪贴板工作。

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

然后ctrl+V到脚本返回

    "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"

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

【讨论】:

  • stackoverflow.com/questions/10959521/…这个链接可能有帮助
  • 您在使用 LINUX 吗? clip
  • 如果我理解您收到的错误消息,此评论位置不允许更改行。你会在没有 \'s 的情况下再次尝试该代码吗?代码有三行,> clip write.table(t(as.vector(x)), file=clip) >close(clip)。谢谢
  • 我会尝试使用 LINUX,稍后再回复。我的道歉
  • 谢谢你,亲爱的。没关系,我不会给麻烦,我会解决这个问题。谢谢
【解决方案2】:

你可以使用 -

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)

【讨论】:

  • 谢谢亲爱的先生,但是AFAK cat 是打印功能,我不能分配给df
  • 如果不可能的话也没关系,我将所有文件分成 100-100 个文件,然后通过 dupt 我试图移动
  • cat 不返回任何值。它返回NULL。如果要移动文件,请使用list.files 获取文件的路径并将路径直接传递给file.copy
  • 我需要过滤基于 list.files 的条件,然后尝试移动选定的文件,我尝试了您的建议但返回字符(0)
  • 兄弟,好的,我接受答案并关闭它。我的过程需要时间,但没关系。我不想浪费你宝贵的时间。谢谢
猜你喜欢
  • 2021-03-27
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多