从命令行运行R脚本

13 浏览
0 Comments

从命令行运行R脚本

我有一个名为a.r的文件,它的chmod值为755。

sayHello <- function(){
   print('hello')
}
sayHello()

我怎样通过命令行运行它呢?

admin 更改状态以发布 2023年5月21日
0
0 Comments

这并没有直接回答问题。但有些人可能会通过这个问题想要在终端中运行R的一行命令。例如,如果你只想安装一些缺少的包并退出,这个一行命令非常方便。当我突然发现我缺少一些包并想要将它们安装到我想要的地方时,我经常使用它。

  • 要安装到默认位置:

    R -e 'install.packages(c("package1", "package2"))'
    

  • 要安装到需要root权限的位置:

    R -e 'install.packages(c("package1", "package2"), lib="/usr/local/lib/R/site-library")' 
    

0
0 Comments

如果想要将输出打印到终端,最好使用 Rscript

Rscript a.R

请注意,当使用 R CMD BATCH a.R 时,不会将输出重定向到标准输出并在终端上显示,而是会创建一个名为 a.Rout 的新文件。

R CMD BATCH a.R
# Check the output
cat a.Rout

关于使用 Rscript 的另一点需要注意的事情是,默认情况下它不会加载 methods 包,这可能会导致混淆。因此,如果您依赖 methods 提供的任何内容,您需要在脚本中显式加载它。

如果您真的想使用 ./a.R 的调用脚本方式,您可以在脚本顶部添加适当的 #!

#!/usr/bin/env Rscript
sayHello <- function(){
   print('hello')
}
sayHello()

我还要注意,如果您正在运行 * unix 系统,有一个有用的 littler 包,它提供了方便的命令行管道到 R。也许需要使用 littler 通过脚本运行闪亮的应用程序?更多详细信息可以在 这个问题 中找到。

0