bash到Rscript的命令行参数

sam*_*mar 18 bash arguments r

我有一个bash脚本创建一个csv文件和一个R文件,从中创建图形.

在bash脚本的最后我打电话 Rscript Graphs.R 10

我得到的回应如下:

Error in is.vector(X) : subscript out of bounds
Calls: print ... <Anonymous> -> lapply -> FUN -> lapply -> is.vector
Execution halted
Run Code Online (Sandbox Code Playgroud)

Graphs.R的前几行是:

#!/bin/Rscript
args <- commandArgs(TRUE)
CorrAns = args[1]
Run Code Online (Sandbox Code Playgroud)

不知道我做错了什么?网上的建议在我看来应该说这应该有效.很难理解commandArgs

mar*_*cog 16

在args.R中有以下内容

print(commandArgs(TRUE)[1])
Run Code Online (Sandbox Code Playgroud)

以及args.sh中的以下内容

Rscript args.R 10
Run Code Online (Sandbox Code Playgroud)

我得到以下输出 bash args.sh

[1] "10"
Run Code Online (Sandbox Code Playgroud)

并没有错误.如有必要,使用转换为数字类型as.numeric(commandArgs(TRUE)[1]).


Jos*_*ich 6

只是一个猜测,也许你需要CorrAns从字符转换为数字,因为值部分?CommandArgs说:

包含可执行文件名称和用户提供的命令行参数的字符向量.

更新:它可以像以下一样简单:

#!/bin/Rscript
args <- commandArgs(TRUE)
(CorrAns = args[1])
(CorrAns = as.numeric(args[1]))
Run Code Online (Sandbox Code Playgroud)