1

私はWindows でparallelまたはsnowパッケージを使用しています。このmakeCluster関数はrscript引数を取り、Rscriptワーカーで実行する場所を指定できます。--vanillaなぜオプションを実行したいのですか?

編集:makeCluster(2, rscript='pathToMyRScript --vanilla')私のボックスで実行が機能していません

4

3 に答える 3

2

これらのパッケージが提供する単純で直接的な方法があるとは思いません。ラッパーを作成し、「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")
于 2013-03-01T02:43:33.060 に答える
2

最善の選択肢は、これを機能要求としてパッケージ作成者に送信するか、関数定義に飛び込んで独自の呼び出しを定義し、Rscript と呼ばれる PSOCK ノードの生成を試みることだと思います--vanillaparallel:::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書き込みがうまくいかないことに驚いています。

于 2013-03-06T23:40:50.840 に答える
1

An Introduction to RRのマニュアルページのセクション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ではなくコマンドラインから。

于 2013-02-20T13:27:46.357 に答える