如何在 foreach( ... , .packages="pkg") %dopar% 中指定 R 包的位置

use*_*819 2 foreach r

我的“pkg”安装在其他地方,我怎么能告诉 foreach 在哪里可以找到这个包?

foreach(i = 1:2,.packages="pkg") %dopar% { ... }
Run Code Online (Sandbox Code Playgroud)

这给了我错误信息:

worker initialization failed: there is no package called 'pkg'
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助。

Boe*_*ern 5

另一种方法是.libPaths在您致电之前将其分发给所有工作人员foreach

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
}
Run Code Online (Sandbox Code Playgroud)