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 に答える