在R脚本中parsing命令行参数

有没有方便的方法来自动分析传递给R脚本的命令行参数?

就像perl的Getopt::Long

CRAN上有三个软件包:

  • getopt :类似于getopt的行为
  • optparse :一个由Python的optparse库启发的命令行parsing器
  • argparse :一个命令行可选和位置参数parsing器(受Python的argparse库启发)。 这个包要求Python解释器和argparsejson (或者simplejson )模块一起安装。

更新

  • docopt :让你定义一个命令行界面,只要给它一个特定格式的描述。 它是一个docopt.py的端口。
  • argparser :纯粹在R中编写的跨平台的命令行参数parsing器,没有外部依赖关系。 这个包在Rscript前端很有用,并且有助于将R脚本转换为可执行脚本。
  • minimist :与最小化JavaScript库的绑定。 该模块实现了乐观主义者参数parsing器的胆量,没有任何幻想的装饰(没有外部依赖)
  • optigrab :使用简单,干净的语法从命令行parsing选项。 它只需要很less或没有规范,并支持短期和长期选项,GNU,Java或Microsoft风格的语法,动词命令等等。

最简单的方法是使用commandArgs()。 例子 – 将下面的代码保存为“options.R”:

 options <- commandArgs(trailingOnly = TRUE) options 

运行使用“Rscript options.R xyz”。 结果:

 [1] "x" "y" "z" 

3个元素的列表,每个参数一个。

只是为了补充Rscript的答案:

 edd@max:~$ r -e 'print(argv)' flim flam flom [1] "flim" "flam" "flom" edd@max:~$ 

我们只是在小问题上使用argv 。 getopt是两个可用的parsing包中较老的,所以我运气不错。

我可以在Xmisc包中引入ArgumentParser吗? 这是一个由Python的argparse启发的命令行parsing器,但它是无Python的。

http://cran.r-project.org/web/packages/Xmisc/vignettes/Xmisc-ArgumentParser.pdf

在这里输入图像说明