Rでバッチ実行時にコマンドライン引数を取得

実験データの解析・プロットをするためにRを使い始めたんだけど、Rスクリプトをバッチ実行する方法でちょっと悩んだので、そのメモ。
http://www.okada.jp.org/RWiki/?%A5%D0%A5%C3%A5%C1%A5%E2%A1%BC%A5%C9」を参考にバッチ実行する方法、コマンドライン引数を取る方法はすぐにわかった。だけど、このページではコマンドライン引数をインデックスで取得している。こんな感じで。

args <- commandArgs()
file <- args[5]

この実行方法だと、Rコマンドへのオプションを変更すると引数のインデックスが変わり、スクリプトで期待した値が取得できない場合がある。引数で入力ファイル、出力ファイルを取る場合、最悪の場合、入力ファイルや出力ファイルを取り間違え、ファイルの内容を消してしまうような問題も起こる。
そこで僕が考えたのは次のような方法。"--args"以降をスクリプトへの引数とみなし、それ以降を処理している。"--args"はRのオプションでもあるけど、これを使っても問題ないようなのでこれを区切り文字列とした。

args <- commandArgs()
argc <- length(args)
args1 <- 1
for (i in 1:argc) {
  if (args[i] == "--args") {
    args1 <- i+1; break
  }
}
file <- args[args1]
fig  <- args[args1+1]

もっとスマートな方法は無いのかな。まぁ、シェルスクリプトでラップしちゃえば問題なくなるんだけど。