私はWindows でparallel
またはsnow
パッケージを使用しています。このmakeCluster
関数はrscript
引数を取り、Rscript
ワーカーで実行する場所を指定できます。--vanilla
なぜオプションを実行したいのですか?
編集:makeCluster(2, rscript='pathToMyRScript --vanilla')
私のボックスで実行が機能していません
私はWindows でparallel
またはsnow
パッケージを使用しています。このmakeCluster
関数はrscript
引数を取り、Rscript
ワーカーで実行する場所を指定できます。--vanilla
なぜオプションを実行したいのですか?
編集:makeCluster(2, rscript='pathToMyRScript --vanilla')
私のボックスで実行が機能していません
これらのパッケージが提供する単純で直接的な方法があるとは思いません。ラッパーを作成し、「rscript」オプションを使用してそのラッパーへのフル パスを指定します。理論的には簡単ですが、実際には、空白が含まれている場合に引数を再解析することによるエラーを回避するために、ラッパーを作成するときに注意する必要があります。たとえば、次の BAT スクリプトには問題があると思われます。
"C:\Program Files\R\R-2.15.2\bin\Rscript" --vanilla %*
サブプロセス モジュールを使用する Python スクリプトを使用する可能性がありますが、選択できる可能性はたくさんあります。
アップデート
R バージョン 3.1.2 以降、関数rscript_args
にオプションが追加されましたmakeCluster
。このオプションを使用して、次のオプションを指定--vanilla
できます。
makeCluster(2, rscript_args="--vanilla")
最善の選択肢は、これを機能要求としてパッケージ作成者に送信するか、関数定義に飛び込んで独自の呼び出しを定義し、Rscript と呼ばれる PSOCK ノードの生成を試みることだと思います--vanilla
。parallel:::newPSOCKnode
への呼び出しがどのように定義されているかを確認してくださいRscript
。関心のある行は次のとおりです。
rscript <- if (getClusterOption("homogeneous", options)) {
shQuote(getClusterOption("rscript", options))
}
else "Rscript"
cmd <- paste(rscript, "-e", shQuote(arg), env)
Rscript --vanilla
代わりに呼び出す関数を変更できる場合は、正常に機能する可能性があります。rscript=<rscript_path> --vanilla
書き込みがうまくいかないことに驚いています。
An Introduction to R
RのマニュアルページのセクションB.4から:
If you just want to run a file foo.R of R commands, the recommended way is to use R CMD BATCH foo.R. If you want to run this in the background or as a batch job use OS-specific facilities to do so: for example in most shells on Unix-alike OSes R CMD BATCH foo.R & runs a background job.
したがって、あなたの場合、すべてのコマンドをスクリプトに入れる必要があります。
R --vanilla CMD BATCH your_script.R
GUIではなくコマンドラインから。