我正在使用R
中的cron
自动执行某些网页抓取,有时我会使用R CMD BATCH
,有时我会使用Rscript
。
要决定使用哪一个,我主要关注我是否需要.Rout
文件。
但是在SO中阅读一些问题的答案(例如this或this)似乎Rscript
优先于R CMD BATCH
。
所以我的问题是:
除了语法略有不同且R CMD BATCH
保存.Rout
文件而Rscript
没有,两者之间的主要区别是什么?
我应该何时优先选择另一个?更具体地说,在上面提到的cron
工作中,其中一个是首选的吗?
我尚未使用littler
,它与Rscript
和R CMD BATCH
有何不同?
答案 0 :(得分:26)
据我所知:
R CMD BATCH:
Rscript:
更小:
在实践中,我使用Rscript在命令行或crons中运行脚本。
答案 1 :(得分:21)
R CMD BATCH
就是我们几年前所拥有的。它使i / o变得非常困难,并留下文件。
事情变得更好,首先是更小的,然后是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 is now also on CRAN。