R commandArgs(TRUE)返回字符串而不是数组?

时间:2012-07-26 18:15:40

标签: r command-line command-line-arguments

脚本

#!/usr/local/bin/Rscript --slave
args <- commandArgs(TRUE)
print(args); 

Shell命令

~/Rscript my_script.R hello 10 3

输出

[1] "hello" "0"     "10"

我期待一个类似的数组:

[1] "hello"
[2] "0"
[3] "10"

那么我做错了什么?

3 个答案:

答案 0 :(得分:2)

这就是如何在R中打印矢量,就像你创建它一样:

> c("hello", "10", "3")
[1] "hello" "10"    "3"    

尝试

print(args[1])
print(args[2])
print(args[3])

你会看到每个人都访问相应的字符串。

答案 1 :(得分:2)

?commandArgs返回的值是:

  

包含可执行文件名称和   用户提供的命令行参数

您显示的输出是R显示矢量的标准方式:

> c("Hello", "10", "3")
[1] "Hello" "10"    "3"

答案 2 :(得分:0)

如果你想以args的形式访问args中的值,请不要忘记转换它,因为commandArgs会为你提供一个字符串向量。实施例

  

N&lt; - as.numeric(Args [3])

返回10而不是&#34; 10&#34;。