[英]Why are "--slave" and "--no-restore" being used by commandArgs when I call my R file with Rscript
我正在从命令行(linux)使用Rscript运行 R 脚本,如下所示:
Rscript myscript.R inputfile1.csv inputfile.csv integerArg
我的命令参数的结构是这样的
cmd_args <- commandArgs()
infile1 <- cmd_args[1]
infile2 <- cmd_args[2]
intArg <- cmd_args[3]
main_func<-function(infile1, infile2, intArg){
print(infile1)
print(infile2)
print(intArg)
}
main_func(infile1, infile2, intArg)
这打印出来
[1] “/home/miniconda3/envs/bionano_python3.0/lib/R/bin/exec/R” [1] “--slave” [1] “--no-restore”
我想我不必告诉您脚本第一次遇到其中一个输入参数时会出错。
我也尝试过像这样运行脚本,它给出了完全相同的输出/错误
R --slave --no-restore --file=myscript.R --args inputfile1.csv inputfile.csv integerArg
我很困惑,因为我在调用 Rscript 时没有设置这些标志,所以它们为什么会出现,我怎样才能让 commandArgs 只读取指定的输入参数? 关于如何解决这个问题的任何想法? 我似乎找不到任何关于为什么会发生这种情况的信息,而且我显然只是错过了一些东西。 提前非常感谢。
“这就是它的方式” Rscript
。
一种解决方法:使用commandArgs(trailingOnly=TRUE)
另一个修复:使用littler
(请参阅CRAN中的 littler,它会修剪类似于trailingOnly=TRUE
的参数并将它们留在 `argv[]
另一个解决方法:使用例如标准化选项过程的docopt
(请参阅CRAN 的 docopt 。
在 inst/examples的 littler 存储库中有很多结合littler
和docopt
的示例。 多年来,我每天都使用其中的一些。 正如他们所说,“为我工作”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.