在命令列中執行 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 文件。