可能重复:
How can I read command line parameters from an R script?
我有一个R脚本,我希望能够提供多个命令行参数(而不是代码本身的硬编码参数值)。该脚本在linux上运行。
我无法找到如何在命令行Bash上读取R.script。
sh file
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")
答案 0 :(得分:5)
要从命令行中获取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 $*
应该给出相同的结果。