如何从R脚本读取命令行参数?

我有一个R脚本,我希望能够为它提供几个命令行参数(而不是代码本身中的硬代码参数值)。该脚本在Windows上运行

我找不到有关如何将命令行上提供的参数读入R脚本的信息。如果做不到,我会很惊讶,所以也许我只是没有在我的谷歌搜索中使用最好的关键字

有什么建议吗

德克的答案就是你需要的一切。这是一个最小的可重复的例子

我创建了两个文件:exmpl.batexmpl.R

  • exmpl.bat

    set R\u Script=“C:\Program Files\R-3.0.2\bin\RScript.exe”
    %R_脚本%exmpl.R 2010-01-28示例100>第2批样本&gt&1.
    

    或者,使用Rterm.exe

    set R\u TERM=“C:\Program Files\R-3.0.2\bin\i386\Rterm.exe”
    %R_TERM%--无恢复--无保存--args 2010-01-28示例100<示例R>第2批样本&gt&1.
    
  • exmpl.R

    选项(echo=TRUE)#如果您想查看输出文件中的命令
    args<-commandArgs(trailingOnly=TRUE)
    打印(args)
    #trailingOnly=TRUE表示只返回参数,请检查:
    #打印(commandArgs(trailingOnly=FALSE))
    开始日期<-截止日期(参数[1])
    名称<-args[2]
    n<-as.integer(参数[3])
    rm(args)
    #一些计算:
    x<-rnorm(n)
    png(粘贴(名称“.png”,sep=”“))
    绘图(开始日期+(1L:n),x)
    发展主任()
    摘要(十)
    

将两个文件保存在同一目录中,然后启动exmpl.bat。在结果中,您将得到:

  • example.png带有一些绘图
  • exmpl.batch

您还可以添加环境变量%R\u Script%

“C:\Program Files\R-3.0.2\bin\RScript.exe”

并在批处理脚本中使用它作为%R\u Script%<filename.r&gt&书信电报;争论&gt

RScriptRterm之间的差异:

  • Rscript的语法更简单
  • Rscript自动选择x64上的体系结构(有关详细信息,请参阅R安装和管理,2.6子体系结构)
  • Rscript如果要将命令写入输出文件,则需要.R文件中的选项(echo=TRUE)

发表评论