R.exe、Rcmd.exe、Rscript.exe和Rterm.exe有何不同?

125

我在处理不同的R可执行文件时遇到了问题。当在批处理文件中运行命令行时,R.exe(带或不带CMD BATCH选项)、Rcmd.exe、Rscript.exe和Rterm.exe之间有什么区别?

还有这两者之间的区别:

R.exe --no-environ --no-save < "c:\temp\R\test.R" > "c:\temp\R\out.txt" 2>&1

R.exe CMD BATCH --no-environ --no-save "c:\temp\R\test.R" "c:\temp\R\out.txt"

输出结果没有任何区别。

在3079页的R参考手册中,我找不到有关Rcmd.exe和Rscript.exe的内容。

顺便说一下:我正在使用Windows操作系统。


3
是的,我已经阅读了那个。但是没有关于Rcmd.exe的任何信息,只有关于Rscript.exe的几行字。使用help(Rscript)可以给我提供更多信息。 - waanders
$R CMD BATCH test.R out.Rout - kamran kausar
1个回答

128

注意:我在Linux上的工作比在Windows上的工作要多得多:

  • Rcmd.exe是一个历史遗留物,因为在过去,你不能在Windows上执行R CMD something命令,而需要使用特殊的可执行文件Rcmd.exe something来代替。现在已经不需要了,但为了向后兼容,它仍然提供。
  • Rterm.exe也是一个遗留物,当时需要使用Rcmd.exe时才用到。现在可以忽略。
  • R CMD BATCH是一个在littlerRscript.exe出现之前必需的替代方法,类似于旧文档和习惯遗留下来的东西。
  • Rscript.exe是批处理脚本的好帮手;尽管使用它。
  • 除此之外,还有R.exe

除此之外,正如Marek所暗示的那样,在六份可用的手册中,参考手册并不适合您。请尝试《R语言简介》和《安装与管理》两个手册,它们都有特定的附录适用于Windows。


1
我只想在Windows(shell)批处理文件中使用命令行参数运行R脚本。据我所知,对我来说,R.exe就足够了。 - waanders
1
抱歉,忘记了 Rterm.exe。这也是一个遗留问题。 - Dirk Eddelbuettel
7
R.exe和Rterm.exe之间有一个重要的区别 - Rterm.exe使用/LARGEADDRESSAWARE编译,可以在64位Windows下运行时分配4GB RAM,而R.exe不支持(我们谈论的是在64位Windows下运行的32位R)。如果Rterm.exe已经过时,为什么R人员只会对Rterm.exe进行这种设置而不是R.exe呢? - Meh
3
R和Rscript之间还有一个重要的区别,就是Rscript不会加载package:methods,这也是Rscript在批处理脚本中更快启动的原因之一:https://dev59.com/02Ik5IYBdhLWcg3wAJ2E - russellpierce
1
这里提供的建议应该在R和RStudio文档中提到。Rscript.exe 对于批处理脚本非常有用,请使用它。对于其他所有情况,都需要使用 R.exe。但是,对于Windows用户来说,《R和RStudio文档》并不是很有帮助。R和RStudio仍然主要是为Unix/Linux/Mac OSX社区编写的。他们需要提前指出,Windows版本的R和RStudio发行版中存在古老的Unix和DOS遗留问题。 - Rich Lysakowski PhD
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接