将命令行参数作为R脚本中的列表读取

时间:2017-07-11 23:56:09

标签: arrays r list vector command-line

如何以列表的形式读取R中的命令行参数?

例如:Rscript myScript.R hello world

myScript.R代码:

args <- commandArgs(trailingOnly =TRUE)
print(typeof(args)) ---> character
print(args[1])      ---> hello
print(args[2])      ---> world

如果我能够像上面那样访问第1和第2个元素,那么为什么typeof args是字符,为什么不列出?

另外,如果它是一个字符,我如何将其作为命名列表读取,其第一个元素是hello,第二个元素是world。

如果args是一个字符,那么我尝试按空格分割它以形成一个列表:

args <- strsplit(args , " ")

但它会创建列表列表。请帮忙。

1 个答案:

答案 0 :(得分:0)

好吧,我想我想出来了......

args确实是由两个元素组成的character向量。因此,分别使用'hello''world'访问args[1]args[2]是完全正常的。

现在,我不明白为什么你希望它成为一个清单......但如果你真的希望它成为一个清单......也许你应该这样做:

args <- commandArgs(trailingOnly =TRUE)
print(typeof(args))
print(args[1]) # 'hello'
print(args[2]) # 'world'
args_names <- args # saving 'hello' and 'world' to be the names of the list
args <- as.list(args) # making the list
names(args) <- args_names # naming the list
print(typeof(args)) # showing that it is now a list

这是你想要的吗?