当我用 Rscript 调用我的 R 文件时,为什么 commandArgs 使用“--slave”和“--no-restore”
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"
我想我不必告诉您脚本在第一次遇到其中一个输入参数时出错。
我也试过 运行 这样的脚本,它给出了完全相同的 output/error
R --slave --no-restore --file=myscript.R --args inputfile1.csv inputfile.csv integerArg
我很困惑,因为我在调用 Rscript 时没有设置这些标志,为什么它们会出现,以及如何让 commandArgs 只读取指定的输入参数?关于如何解决这个问题的任何想法?我似乎找不到任何关于为什么会发生这种情况的信息,而且我显然只是遗漏了一些东西。提前致谢。
Rscript
.
“就是这样”
一个修复:使用commandArgs(trailingOnly=TRUE)
另一个修复:使用 littler
(参见 littler at CRAN,它修剪类似于 trailingOnly=TRUE
的参数并将它们留在 `argv[]
还有另一个修复方法:使用例如 docopt
来标准化选项过程(参见 docopt at CRAN.
在 littler repo in inst/examples 中有一堆组合 littler
和 docopt
的例子。多年来,我每天都使用其中的一些。正如他们所说,“对我有用”。
我是 运行 从命令行 (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"
我想我不必告诉您脚本在第一次遇到其中一个输入参数时出错。
我也试过 运行 这样的脚本,它给出了完全相同的 output/error
R --slave --no-restore --file=myscript.R --args inputfile1.csv inputfile.csv integerArg
我很困惑,因为我在调用 Rscript 时没有设置这些标志,为什么它们会出现,以及如何让 commandArgs 只读取指定的输入参数?关于如何解决这个问题的任何想法?我似乎找不到任何关于为什么会发生这种情况的信息,而且我显然只是遗漏了一些东西。提前致谢。
Rscript
.
一个修复:使用commandArgs(trailingOnly=TRUE)
另一个修复:使用 littler
(参见 littler at CRAN,它修剪类似于 trailingOnly=TRUE
的参数并将它们留在 `argv[]
还有另一个修复方法:使用例如 docopt
来标准化选项过程(参见 docopt at CRAN.
在 littler repo in inst/examples 中有一堆组合 littler
和 docopt
的例子。多年来,我每天都使用其中的一些。正如他们所说,“对我有用”。