有没有方便的方法来自动解析传递给R脚本的命令行参数?
像perl这样的东西Getopt::Long?
我很难将文件名传递给我的R脚本.该文件是一个csv文件,其中包含多次运行脚本的批处理参数.我试图在此处包含它,以便用户不需要编辑R脚本以指定该文件的位置.
我的Windows命令行语法是:
R CMD BATCH --slave "--args fn=batch.csv" myscript.r output.txt
Run Code Online (Sandbox Code Playgroud)
我在R脚本中检索到的最接近的是:
eval(parse(file=commandArgs()[8])))
batch_args = read.table(fn, sep=",")
Run Code Online (Sandbox Code Playgroud)
我曾尝试用commandArgs(trailingOnly=TRUE)和parse(text=commandArgs()[8])等,没有运气.我见过的大多数文档都不适用于传递文件名.谁能想到解决方案?
是否有一个包来处理R中的命令行选项?
我知道commandArgs,但这太基础了.它的结果基本上等同于argc和argv中C,但我需要一些东西,就像boost::program_options在里面C++或GetOptions::Long在里面一样perl.
特别是,我想提前指定允许的选项,并在用户指定其他内容时给出错误消息.
调用将是这样的(使用用户选项--width = 32 --file = foo.txt):
R --vanilla --args --width=32 --file=foo.txt < myscript.R
Run Code Online (Sandbox Code Playgroud)
或者,如果Rscript使用:
myscript.R --width=32 --file=foo.txt
Run Code Online (Sandbox Code Playgroud)
(请不要说,"你为什么不自己写,不是那么难".在其他语言中,你也不必自己写.:)