在命令列中執行 R 指令碼

Gustavo du Mortier 2023年1月30日 2020年12月31日
R
  1. Rscript 選項
  2. 在 Rscript 中使用 -e 引數執行簡單的表示式
在命令列中執行 R 指令碼

從命令列執行 R 指令碼最方便的方法是使用 Rscript,它是執行 R 程式碼的另一種前端。Rscript 能夠從不同的命令直譯器中執行 R 程式碼,例如 Linux 上的 bash 指令碼或 Windows 上的任務排程器任務。

要使用 Rscript,你必須從命令列中執行 Rscript 命令,並附上要執行的指令碼名稱,通常是一個 .r 檔案。要做到這一點,你必須知道 Rscript 可執行檔案和 R 指令碼的路徑。在 Windows 上,Rscript 可執行檔案的路徑通常是。

C:\Program Files\R\R-3.4.3\bin\Rscript.exe

要嘗試 Rscript,你可以寫下面的指令碼,並將其以 SayHi.r 的名字儲存在 C:\scripts 資料夾中。

SayHi <- function(name) {
  sprintf("Hi, %s", name);
}

SayHi("Dave")

然後,你可以從命令列執行它,通過導航到安裝 Rscript.exe 檔案的資料夾,並執行以下命令。

Rscript.exe c:\scripts\SayHi.r

輸出:

[1] "Hi, Dave"

Rscript 選項

所有 Rscript 選項都以 -- 開頭。你可以使用 Rscript 的 --help 選項來獲得關於如何使用命令的詳細說明,而 --version 引數則顯示 Rscript 的版本。如果你想得到 Rscript 執行指令碼時的反饋,你可以使用 --verbose 選項。

--default-packages=list 選項(其中 list 是一個以逗號分隔的包名列表)通過設定環境變數 R_DEFAULT_PACKAGES 來決定在啟動時載入的包。如果沒有使用 --default-packages=list 選項,Rscript 會檢查一個名為 R_SCRIPT_DEFAULT_PACKAGES 的環境變數。這個變數的內容優先於 R_DEFAULT_PACKAGES

在 Rscript 中使用 -e 引數執行簡單的表示式

如果你想在 R 中執行簡單的表示式,而不是指定一個指令碼檔案來執行,你可以通過使用 -e 引數,在同一命令列中與 Rscript 命令一起指定它們來實現。例如,如果你想在不建立指令碼檔案的情況下列出 Iris 資料集的前 4 行,你可以從命令列中執行以下內容。

Rscript -e "head(iris,4)"

輸出:

 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
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa

關於 Rscript 命令的更多資訊,請檢視官方 Rscript 文件