据我所知:
R CMD BATCH:
Rscript:
littler:
R CMD BATCH
只是我们多年前使用的工具。它使输入输出非常困难,而且会留下一些文件。
现在情况变得更好了,先是有了 littler,然后又有了 Rscript。两者都可以用于“shebang”行,例如:
#!/usr/bin/r
#!/usr/bin/Rscript
两者都可以与像 getopt 和 optparse 这样的包一起使用,使您能够编写适当的 R 脚本,可作为命令使用。如果有数十个这样的脚本,从像这样简单的脚本开始,我可以像这样调用它们 install.r pkga pkgb pkgc
,而不会占用 R 提示符,并且会为我安装所有三个以及它们的依赖项。
#!/usr/bin/env r
#
# a simple example to install one or more packages
if (is.null(argv) | length(argv)<1) {
cat("Usage: installr.r pkg1 [pkg2 pkg3 ...]\n")
q()
}
## adjust as necessary, see help('download.packages')
repos <- "http://cran.rstudio.com"
## this makes sense on Debian where no packages touch /usr/local
lib.loc <- "/usr/local/lib/R/site-library"
install.packages(argv, lib.loc, repos)
就像 Karl 一样,我也有 cronjobs 调用类似的 R 脚本。
2015-11-04 编辑:截至上周,littler 现在也在 CRAN 上了。
commandArgs
与argv
配对会使搜索更好。顺便说一下,为什么不在 littler 初始化时修改commandArgs()
,使其更具可移植性并支持针对Rscript
编写的代码呢?我已经提交了建议。 - jangorecki