2011-03-09 114 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 $* 

这应该给出相同的结果。