r - 使用外部包的foreach并行计算

标签 r r-package parallel.foreach

我自己创建了一个包,并尝试将其应用到并行计算中。
假设包中包含function1function2
我的代码是

cl = makeCluster(2)
registerDoParallel(cl)

foreach(i=1:N,.packages='mypackage') %dopar% {
   res = function1(i)
   res
}
stopCluster(cl)

然后就报错了,function1在mypackage中。

Error in { : task 1 failed - "could not find function "function1""

但是,如果我通过添加更改代码

.export = 'function1'

错误消失。

感谢任何可以解释这一点的人。

最佳答案

要么像 OP 提到的那样使用 .export,要么将函数指定为 packageName::functionName

cl = makeCluster(2)
registerDoParallel(cl)

foreach(i=1:N,.packages='mypackage') %dopar% {
   res = mypackage::function1(i)
   res
}
stopCluster(cl)

关于r - 使用外部包的foreach并行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68569411/

相关文章:

r - R jsonlite 包中的 SSL 连接错误

r - 安装 Apache SparkR 包时出错

c++ - 使用外部 C 库在 Rcpp 中编译 C++

r - 如何附加包含非导出功能的包?

c# - 决定是使用内部 Parallel.For 还是 Task

r - Matlab 和 R 中的相同随机种子

r - 谷歌API返回错误值

c# - 调用Parallel.Foreach中的方法并将结果保存到线程安全列表中

r - 在 data.table 中对多个变量使用超前/滞后

c# - 需要帮助使 crc 计算的类线程安全