いくつかのことを行ってから Rscript を呼び出す bash スクリプトがあります。簡単な例を次に示します。
test.sh:
Rscript test.r
test.r:
args <- commandArgs()
print(args)
./test.sh hello
コマンドラインで使用すると、Rがhelloを印刷するようにするにはどうすればよいですか?
次のような bash スクリプトを使用して、bash にすべての引数を R スクリプトに渡すことができます。
#!/bin/bash
Rscript /path/to/R/script --args "$*"
exit 0
次に、R 内で破棄する必要がある $* からの引数の数を選択できます。
これに対処する方法は次のとおりです。
test.sh:
Rscript test.r $1
test.r:
args <- commandArgs(TRUE)
print(args)
は$1
、bash スクリプトに渡される最初の引数を表します。
commandArgs()
の代わりに呼び出すとcommandArgs(TRUE)
、bash からは渡されませんが、代わりに内部で呼び出された他の引数が出力されます。
asbの答えについて:
bash スクリプトの行に「--args」を使用しても機能しません。「--args」は、R スクリプトに渡したい実際の引数のリテラルとして使用されました。それを取り出すと、つまり「Rscript /path/to/my/rfile.R arg1 arg2」となります。
bash バージョン: GNU bash、バージョン 3.2.25(1)-release (x86_64-redhat-linux-gnu) Rscript バージョン: R スクリプト フロントエンド バージョン 3.0.1 (2013-05-16)