2015-07-20 42 views
2

我們知道我們可以通過 awk {....} 將AWK或SED直接嵌入到BASH腳本中。我想要做類似R,使得一些如 mybashscript.sh 環R {....}將R代碼嵌入到BASH中unix腳本

不使用RSCRIPT myRscript.R

不必創建一個.R文件,並要求從猛砸.R文件

有沒有辦法做到這一點。我到處搜索,但無法找到答案。請幫忙。

+1

還有德克Eddelbeutel的利特勒程序:http://dirk.eddelbuettel.com/code/ –

回答

2

Bash能夠執行任意腳本語言的語句。它的格式爲VARIABLE_NAME=$(INTERPRETER -c "EMBEDDED CODE")。在R INTERPRETER -c的情況下將被替換爲R --arch i386 -q --slave -e--arch選項可以是任何支持的體系結構,例如i386或x64,-q保持解釋器不打印啓動信息,並且--slave保持輸出儘可能乾淨。

+0

謝謝比爾。 –

2

您可以使用Rscript命令,特別是關於您的問題,-e expr構造,輕鬆地將R代碼直接嵌入到bash腳本中。檢查man Rscript

一個例子:

#!/bin/bash 

echo "This is a bash script" 
echo "Running R code..." 

Rscript -e 'cat("hello world")' 
+1

感謝Micah,這是一個優雅的解決方案,我還發現我們可以使用分號嵌入多行代碼,例如Rscript -e'x = c(1,2,3,4);打印(X)」 –