search()的结果为字符串

时间:2015-01-17 13:21:03

标签: r collapse

我需要使用引号和逗号在(.packages.())格式中显示命令"package-name","package-name","package-name"的结果。我尝试使用printpaste ...但即使四小时后我也无法获得正确的结果!

paste((.packages()),collapse=",")

几乎可以工作,但引号只在第一个位置和最后一个位置。而collapse="",""并不起作用。 有人能帮助我吗?

最佳

3 个答案:

答案 0 :(得分:2)

使用paste两次尝试:

paste0('"',paste((.packages()),collapse='","'),'"')

答案 1 :(得分:2)

这类似于您所拥有的内容,除了我使用sprintf('"%s"', .packages())代替.packages()在包裹周围添加引号:

> paste(sprintf('"%s"', .packages()), collapse=",")
[1] "\"stats\",\"graphics\",\"grDevices\",\"utils\",\"datasets\",\"methods\",\"base\""

你可能会被\"所有人抛弃,但R print是双引号(它实际上是单个字符,双引号)。如果您将它们传递给cat或其他函数以写入文件/文件句柄,事情将如您所期望的那样:

> cat(paste(sprintf('"%s"', .packages()), collapse=","))
"stats","graphics","grDevices","utils","datasets","methods","base"

答案 2 :(得分:0)

catpaste可以做到。;

 cat("\"", paste0(  .packages()[1:15] , collapse="\", \""), "\"", sep="")
 #"stats4", "latticeExtra", "RColorBrewer", "lattice", "sp", "Formula", "cluster", "sos", "brew", "stats", "graphics", "grDevices", "utils", "datasets", "methods"

如果您只是查看粘贴版本的控制台输出,您会看到为什么我使用cat来整理两端并使显示看起来不那么神秘:

 paste0(  .packages()[1:15] , collapse="\", \"")
#[1] "stats4\", \"latticeExtra\", \"RColorBrewer\", \"lattice\", \"sp\", \"Formula\", \"cluster\", \"sos\", \"brew\", \"stats\", \"graphics\", \"grDevices\", \"utils\", \"datasets\", \"methods"

经过这一步,我意识到它与agstudy的贡献没什么不同,但cat功能确实可以让你更完全地控制显示的内容。 cat的缺点是您无法将输出分配给对象。如果您这样做,则res中没有值:

res <- cat("\"", paste0(  .packages()[1:15] , collapse="\", \""), "\"")
res
# NULL