我需要使用引号和逗号在(.packages.())
格式中显示命令"package-name","package-name","package-name"
的结果。我尝试使用print
和paste
...但即使四小时后我也无法获得正确的结果!
paste((.packages()),collapse=",")
几乎可以工作,但引号只在第一个位置和最后一个位置。而collapse="",""
并不起作用。
有人能帮助我吗?
最佳
答案 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)
cat
和paste
可以做到。;
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