繁体   English   中英

从命令行运行 R 脚本

[英]Run R script from command line

我有一个名为ar的文件,它的chmod为 755,

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

sayHello()

如何通过命令行运行它?

如果您希望输出打印到终端,最好使用 Rscript

Rscript a.R

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

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

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

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

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

sayHello()

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

这并没有直接回答问题。 但是有人可能会在这里结束,因为他们想从终端运行 R 的 oneliner。 例如,如果你只是想安装一些丢失的包并退出,这个oneliner可以很方便。 当我突然发现我错过了一些软件包时,我经常使用它,我想将它们安装到我想要的地方。

  • 安装到默认位置:

     R -e 'install.packages(c("package1", "package2"))'
  • 要安装到需要root权限的位置:

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

从命令行运行 R 脚本的另一种方法是:

R < scriptName.R --no-save  

或使用--save

另请参阅在命令行(终端)上使用 R 脚本的最佳方法是什么? .

您需要?Rscript命令才能从终端运行 R 脚本。

查看http://stat.ethz.ch/R-manual/R-devel/library/utils/html/Rscript.html

例子

## example #! script for a Unix-alike

#! /path/to/Rscript --vanilla --default-packages=utils
args <- commandArgs(TRUE)
res <- try(install.packages(args))
if(inherits(res, "try-error")) q(status=1) else q()

如何通过多个命令使用 knitr 和 rmarkdown 在命令中运行 Rmd,然后将 HTML 文件上传到 RPubs

这是一个示例:加载两个库并运行 R 命令

R -e 'library("rmarkdown");library("knitr");rmarkdown::render("NormalDevconJuly.Rmd")'

R -e 'library("markdown");rpubsUpload("normalDev","NormalDevconJuly.html")'

在 *Unix 系统上使用 Rscript 的另一种方法是Process Substitution

Rscript <(zcat a.r)
# [1] "hello"

这显然与接受的答案相同,但这允许您操作和运行文件而无需保存命令行的功能,例如:

Rscript <(sed s/hello/bye/ a.r)
# [1] "bye"

Rscript -e "Rcode"类似,它还允许在不保存到文件的情况下运行。 因此它可以与生成 R 代码的脚本结合使用,例如:

Rscript <(echo "head(iris,2)")
# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
# 1          5.1         3.5          1.4         0.2  setosa
# 2          4.9         3.0          1.4         0.2  setosa

仅用于文档,有时您需要以sudo身份运行脚本:

sudo Rscript path/to/your/file.R

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM