0

剧本

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

外壳命令

~/Rscript my_script.R hello 10 3

输出

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

我期待一个像这样的数组:

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

那么我做错了什么?

4

3 回答 3

2

这就是向量在 R 中的打印方式,就像您像这样创建它一样:

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

尝试

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

你会看到每个都访问了适当的字符串。

于 2012-07-26T18:26:02.107 回答
2

?commandArgs返回的值是:

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

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

> c("Hello", "10", "3")
[1] "Hello" "10"    "3"
于 2012-07-26T18:28:19.313 回答
0

如果您想以数字形式访问 args 中的值,请不要忘记将其转换为 commandArgs 为您提供字符串向量。前任。

N <- as.numeric(Args[3])

返回您 10 而不是“10”。

于 2014-11-27T11:24:09.903 回答