2015-01-17 122 views
2

我需要以帶引號和逗號的形式"package-name","package-name","package-name"顯示命令(.packages.())的結果。我嘗試了printpaste ......但是即使經過四個小時,我也無法得到正確的結果!搜索結果()作爲字符串

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

幾乎可行,但引號只在第一個和最後一個位置。而collapse="",""不起作用。 任何人都可以幫助我嗎?

最佳

+0

崩潰論本來是'「\」,\「」'或'「‘’」'。如果要雙引號字符實際上是真正的字符,您可以在「外部」使用單引號。 –

回答

2

試試這個使用paste兩次:

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

這與你有什麼,除了我用sprintf('"%s"', .packages())而不是.packages()添加周圍包報價:

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

你可能會被所有的\"扔掉,但這就是如何R print SA DOU ble-quote(它實際上是單個字符,雙引號)。事情看起來像您期望的,如果你把它們傳遞給cat或其他功能寫入文件/文件句柄:

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

catpaste可以做到這一點;

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

如果你只是看的糊版控制檯輸出,你明白我爲什麼用貓來整理的結束,使顯示器看起來不太神祕:

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