Rバッチ
Rでバッチ処理
前提
UNIX系環境を想定します.
Script.Rをバッチ処理する場合
$ R --vanilla < Script.R
オプション
- --vanilla : これまで保存していたワークスペースを読み込まない,保存しない
- --slave : Rの出力を標準出力に表示しない
詳しくは
$ R --help
で確認できる.
予期しない動作をさせないように--vanillaをつけておくのが無難.
この場合,実行結果は保存されないので,実行結果をファイルに書き出す(write.csv)なり,オブジェクト保存する(save)なり,標準出力させてファイルに書き出す(後述)なりを実行するようにスクリプトに記述しておく.
ちなみに何もつけないと
Fatal error: you must specify '--save', '--no-save' or '--vanillla'
とエラーになる.
コマンドライン引数
引数を渡して実行したい場合はScript.R内で次のように記述
args <- commandArgs(trailingOnly = T) #コマンドライン引数の読み込み
x <- args[1] #一つ目の引数をxに代入
y <- args[2] #二つ目の引数をyに代入
実行時は
$ R --vanilla --args 5 10 < Script.R
のようにして引数を渡す.
標準出力の保存
$ R --vanilla < Script.R > out.log
で標準出力がout.logに保存される.
teeコマンドを使って $ R --vanilla < Script.R | tee out.log としてもOK
【参考】