スクリプト
#!/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"
だから私は何が間違っているのですか?
スクリプト
#!/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"
だから私は何が間違っているのですか?
これは、ベクトルがRで印刷される方法であり、次のように作成した場合と同じです。
> c("hello", "10", "3")
[1] "hello" "10" "3"
試す
print(args[1])
print(args[2])
print(args[3])
それぞれが適切な文字列にアクセスしていることがわかります。
?commandArgs
返される値から:
実行可能ファイルの名前とユーザー指定のコマンドライン引数を含む文字ベクトル
表示した出力は、Rがベクトルを表示する標準的な方法です。
> c("Hello", "10", "3")
[1] "Hello" "10" "3"
argsの値に数値としてアクセスする場合は、commandArgsが文字列のベクトルを取得するため、変換することを忘れないでください。元。
N <-as.numeric(Args [3])
「10」ではなく10を返します。