2011-03-09 76 views
1

可能重複:
How can I read command line parameters from an R script?從bash腳本運行帶有參數的R檔

我有A R腳本,我想爲其能夠提供幾個命令行參數(而不是代碼本身的硬編​​碼參數值)。該腳本在Linux上運行。

我不知道如何在命令行Bash上讀取R.script。

SH文件

cd `dirname $0` 
/usr/lib64/R/bin/R --vanilla --slave "--args input='$1' input2='$2' output='$3'" file=/home/lvijfhuizen/galaxy_dist/tools/lisanne/partone.R $3.txt 

R檔

args <- commandArgs() 
file <- read.csv(args[8],head=TRUE,sep="\t") 
annfile <- read.csv(args[9],head=TRUE,sep="\t") 
+2

另請參閱http://stackoverflow.com/search?q=[r]+script+command+line+parameters這不是最好的搜索功能,但它有時會工作... – 2011-03-09 15:23:08

回答

5

要源從命令行A R腳本,通過管道將它與< R上。

例如,如果我創建以下test.sh bash腳本:

#!/bin/bash 

rfile=$1 
shift 
R --vanilla --slave --args $* < $rfile 
exit 0 

其中test.R是在相同的目錄中的下述R腳本:

print(commandArgs(trailingOnly=TRUE)) 

然後運行該腳本與test.R作爲第一論點和可能其他人會給這樣的事情:

$ ./test.sh test.R foo bar 1 2 3 
[1] "foo" "bar" "1" "2" "3" 

編輯:另一種方式,也許更乾淨,就是使用專用的Rscript命令。然後,你可以直接把你的bash腳本,如:

rfile=$1 
shift 
Rscript $rfile $* 

這應該給出相同的結果。