【问题标题】:Why (or when) is Rscript (or littler) better than R CMD BATCH?为什么(或何时)Rscript(或更小)比 R CMD BATCH 更好?
【发布时间】:2014-03-25 00:24:07
【问题描述】:

我在cron 中使用R 自动执行一些网络抓取,有时我使用R CMD BATCH,有时我使用Rscript

要决定使用哪一个,我主要关注是否需要.Rout 文件。

但在 SO(如thisthis)中阅读一些问题的答案,似乎Rscript 优于R CMD BATCH

所以我的问题是:

  • 除了语法有点不同,R CMD BATCH 保存了一个.Rout 文件,而Rscript 没有,这两者之间的主要区别是什么?

    李>
  • 什么时候我应该更喜欢一个而不是另一个?更具体地说,在上面提到的cron 工作中,是否首选其中之一?

  • 我还没用过littler,和RscriptR CMD BATCH有什么区别?

【问题讨论】:

    标签: r batch-file cmd cron rscript


    【解决方案1】:

    据我了解:

    R CMD BATCH:

    • 回显输入语句
    • 无法输出到标准输出

    脚本:

    • 不回显
    • 输出到标准输出
    • 可以单行使用(即没有输入文件)

    littler:

    • Rscript 所做的一切
    • 可以从标准输入读取命令(对流水线很有用)
    • 更快的启动时间
    • 加载方法包

    【讨论】:

    • @DirkEddelbuettel 你是对的。将文档中的某处 commandArgsargv 配对可以更好地进行搜索。顺便提一句。为什么不在 littler init 中修改 commandArgs() 以使其成为更可移植和支持的代码?刚刚填满了FR。
    • 那么我们可以/应该删除这四个或五个 cmets 吗?它们只是噪音。
    • 也是你的最后一个骗局:littler is now a CRAN package
    • @DirkEddelbuettel 已修复。
    【解决方案2】:

    R CMD BATCH 是我们多年前所拥有的一切。它使 i/o 变得非常困难,并留下文件。

    事情变得更好了,首先是 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 月 4 日编辑: 截至上周,littler is now also on CRAN

    【讨论】:

      猜你喜欢
      • 2016-12-07
      • 2015-12-03
      • 1970-01-01
      • 2012-06-10
      • 2020-01-03
      • 1970-01-01
      • 2020-04-27
      相关资源
      最近更新 更多