使用bash脚本中的参数运行R文件

时间:2011-03-09 15:10:30

标签: bash r

  

可能重复:
  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")

1 个答案:

答案 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 $*

应该给出相同的结果。