R:RScript 矢量作为参数

Loo*_*mis 5 command-line r vector rscript

我正在使用 R 中预安装的 RScript 包。

我想从命令提示符调用以下名为“test.R”的 R 脚本:

a <- c("a", "b", "c")
a

args <- commandArgs(TRUE)
b <- as.vector(args[1])
b
Run Code Online (Sandbox Code Playgroud)

我使用以下命令:

RScript test.R c("d","e","f")
Run Code Online (Sandbox Code Playgroud)

这将创建以下输出:

[1] "a" "b" "c"
[1] "c(d,e,f)"
Run Code Online (Sandbox Code Playgroud)

如您所见,第一个(也是唯一的)参数被解释为字符串,然后转换为一维向量。如何将参数解释为向量?

旁注:当然,向量的项可以分为多个参数,但在我的最终项目中,将有多个向量参数。实现这样的事情是我最后的手段:

RScript test.R "d" "e" "f" END_OF_VECTOR_1 "g" "h" "i" END_OF_VECTOR_2 "j" "k" "l"
Run Code Online (Sandbox Code Playgroud)

flo*_*del 4

您可以使用逗号分隔的列表。

在命令行上:

RScript test.R a,b,c d,e,f g,h,i j
Run Code Online (Sandbox Code Playgroud)

在你的代码中:

vargs <- strsplit(args, ",")
vargs
# [[1]]
# [1] "a" "b" "c"
# 
# [[2]]
# [1] "d" "e" "f"
# 
# [[3]]
# [1] "g" "h" "i"
# 
# [[4]]
# [1] "j"
Run Code Online (Sandbox Code Playgroud)