私の "pkg"は別の場所にインストールされていました。foreach(...、.packages = "pkg")でRパッケージの場所を指定する方法%dopar%
foreach(i = 1:2,.packages="pkg") %dopar% { ... }
この私に与えてエラーメッセージ:
worker initialization failed: there is no package called 'pkg'
はあなたの助けをいただき、ありがとうございます。
私の "pkg"は別の場所にインストールされていました。foreach(...、.packages = "pkg")でRパッケージの場所を指定する方法%dopar%
foreach(i = 1:2,.packages="pkg") %dopar% { ... }
この私に与えてエラーメッセージ:
worker initialization failed: there is no package called 'pkg'
はあなたの助けをいただき、ありがとうございます。
.libPaths()
関数を使用して、実行中のセッションでライブラリパスを設定することができます。
そうでなければ、~/.Renviron
などの起動ファイルは、?Startup
を参照してください。
最後に、foreach
を使用して別のマシンを実行する場合は、各マシンのライブラリパスを管理する必要があります。
別のアプローチは、あなたがforeach
を呼び出す前に、すべての労働者に.libPaths
を分配するために、次のようになります。
library(foreach)
library(doParallel)
#setup parallel backend to use 8 processors
cl<-makeCluster(8)
registerDoParallel(cl)
# pass libPath to workers, NOTE THIS LINE
clusterCall(cl, function(x) .libPaths(x), .libPaths())
parallelResults <- foreach(i = 1:42, .combine = rbind) %dopar% {
# do your stuff
}