search() 的结果作为字符串

result of search() as character string

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

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

几乎可以,但是引号只在最开始和最后的位置。 collapse="","" 不起作用。 有人可以帮助我吗?

最佳

尝试使用 paste 两次:

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

这与您所拥有的类似,除了我使用 sprintf('"%s"', .packages()) 而不是 .packages() 在包周围添加引号:

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

您可能会被所有 \" 所迷惑,但这就是 R print 的双引号(它实际上是一个字符,双引号)。如果将它们传递给 cat 或其他用于写入 files/filehandles:

的函数,事情将如您所愿
> cat(paste(sprintf('"%s"', .packages()), collapse=","))
"stats","graphics","grDevices","utils","datasets","methods","base"

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