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

【参考】

R出力の記録 - RjpWiki