从bash脚本运行带有参数的R档
问题描述:
可能重复:
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")
答
要源从命令行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 $*
这应该给出相同的结果。
另请参阅http://stackoverflow.com/search?q=[r]+script+command+line+parameters这不是最好的搜索功能,但它有时会工作... – 2011-03-09 15:23:08