批处理模式引用参数解析

Erw*_*wan 6 r

我试图在批处理模式下使用我的R脚本,但R似乎无法正确解析引用的参数:

args=(commandArgs(TRUE))
for(i in 1:length(args)){
   print(paste('ARG ',i,args[[i]],sep=" "))
}
Run Code Online (Sandbox Code Playgroud)

然后,如果提供带空格和引号的参数,例如:

R CMD BATCH "--args foo=2 bar=3 's=string with spaces'"  test-parameters.R output
Run Code Online (Sandbox Code Playgroud)

输出是:

[1] "ARG  1 foo=2"
[1] "ARG  2 bar=3"
[1] "ARG  3 's=string"
[1] "ARG  4 with"
[1] "ARG  5 spaces'"
Run Code Online (Sandbox Code Playgroud)

当然我想要第三个参数s='string with spaces':有没有办法获得它?

谢谢!

Tom*_*mmy 1

是的,R CMD BATCH 的行为有点奇怪。

试试这个:

R --slave --vanilla --file=test-parameters.R --args foo=2 bar=3 "s=string with spaces" > output
Run Code Online (Sandbox Code Playgroud)

--slave 和 --vanilla 选项可能会根据需要替换为更合适的选项。