我有一个R脚本,我希望能够提供几个命令行参数(而不是在代码本身硬编码参数值)。该脚本运行在Windows系统上。
我找不到关于如何将命令行上提供的参数读到我的R脚本的信息。如果这不能做到,我会感到惊讶,所以也许我只是没有在我的谷歌搜索中使用最好的关键字…
有什么建议吗?
我有一个R脚本,我希望能够提供几个命令行参数(而不是在代码本身硬编码参数值)。该脚本运行在Windows系统上。
我找不到关于如何将命令行上提供的参数读到我的R脚本的信息。如果这不能做到,我会感到惊讶,所以也许我只是没有在我的谷歌搜索中使用最好的关键字…
有什么建议吗?
当前回答
你需要little(发音为'little r')
Dirk将在大约15分钟后来详细说明;)
其他回答
如果你需要指定带有标志的选项(如-h,——help,——number=42等),你可以使用R包optparse(灵感来自Python): http://cran.r-project.org/web/packages/optparse/vignettes/optparse.pdf。
至少这是我理解你的问题的方式,因为我在寻找bash getopt,或perl getopt,或python argparse和optparse的等效程序时发现了这篇文章。
供您参考:有一个函数args(),它检索R个函数的参数,不要与名为args的参数向量混淆
把这个添加到你的脚本顶部:
args<-commandArgs(TRUE)
然后你可以引用传入的参数args[1], args[2]等。
然后运行
Rscript myscript.R arg1 arg2 arg3
如果参数是带空格的字符串,请用双引号括起来。
Try library(getopt)…如果你想让事情变得更好。例如:
spec <- matrix(c(
'in' , 'i', 1, "character", "file from fastq-stats -x (required)",
'gc' , 'g', 1, "character", "input gc content file (optional)",
'out' , 'o', 1, "character", "output filename (optional)",
'help' , 'h', 0, "logical", "this help"
),ncol=5,byrow=T)
opt = getopt(spec);
if (!is.null(opt$help) || is.null(opt$in)) {
cat(paste(getopt(spec, usage=T),"\n"));
q();
}
你需要little(发音为'little r')
Dirk将在大约15分钟后来详细说明;)