的foreach错误 “无法找到函数 ”%做%“”
问题描述:
我运行此代码的foreach错误 “无法找到函数 ”%做%“”
....
niters = 1000
mFR <- foreach(i=1:iters, .combine=rbind) %dopar% {
foreach(j=1:iters, .combine=c) %do% {
mp2 <- mp[sample(1:1e6, iters)]
fexist = 0
if (mp2[j]>mR12[i]) {
Frv = 1
fexist = 1
} else if (mp2[j]<=mRy2[i]) {
Frv = 0
fexist = 1
} else {
if (mRy2[i]>mR12[i]) {
Frv = 1
} else {
fexist = 1
b = mDMDuc1[i]/(1-mR12[i]/mRy2[i])
m = -b/mRy2[i]
DMDp = m*mp2[j] + b
Frv = (DMDp - 0)/(mDMDc2[i] - 0)
}
}
if (fexist==1) {
mFR <- matrix(Frv, ncol=1, nrow = 1)
mFR
}
}
}
任何想法,为什么这个错误发生时,我得到
Error in { : task 1 failed - "could not find function "%do%""
?谢谢!
答
您的并行工作人员每个都在干净的R会话中运行,因此您必须在每个工人中加载foreach
程序包。
尝试增加.packages="foreach"
你的第一线,即:
mFR <- foreach(i=1:iters, .combine=rbind, .packages="foreach") %dopar% ...{
附加说明:该foreach
包定义操作%:%
,旨在简化这种类型的嵌套for循环。
要了解更多信息,请
library(foreach)
vignette("nested")
它的工作原理!完善。谢谢 – jpcgandre 2014-09-11 10:21:26