簡體   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