我需要从命令行构建可复制的R安装。似乎很容易,所以我用感兴趣的包名称创建了一个文件,例如
packages.txt:
ggvis
glmnet
caret
一个名为installPkgs.R的R脚本:
f = read.csv('packages.txt', header=FALSE)
z = install.packages(f[,1], repos='https://cran.rstudio.com')
然后我应该能够从命令行运行它:
Rscript installPkgs.R
当我这样做时,将下载软件包但未安装。我想念什么?
答案 0 :(得分:0)
回答我自己的问题,使答案显而易见,而不会埋藏在言辞中。
在我的代码中,软件包列表被解释为一个因素,而不是字符串。因此,我需要在read.csv()或全局参数stringAsFactors = FALSE中设置参数。
嗯。
答案 1 :(得分:0)
稍加改动,上面的代码就可以从命令行接受包名:
install.packages(commandArgs(trailingOnly = TRUE), repos='https://cran.rstudio.com')
所以运行:
Rscript installPkgs.R "ggvis" "glmnet" "caret"
无需文本文件即可获得与上述相同的结果。