【发布时间】:2017-08-23 13:16:19
【问题描述】:
描述这一点的最简单方法是显示代码。我有一个工作正常的嵌套 foreach 循环,试图准备编译为 R 包,因此删除代码中的“库(foreach)”。我的函数如下所示:
Calcs <- function (...) {
results <- data.frame (foreach::foreach (j = 1:NumSim, .combine = acomb,
.options.mpi=opts1)
%:%
foreach::foreach (i = 1:PopSize, .combine=rbind,
.options.mpi=opts2,
.export = c (ls(globalenv())),
.packages = c("zoo", "msm", "FAdist"))
foreach::`%dopar%` {
output <- if(rbinom(1,1,ProSecPos) > 0)
replicate(DayNum, eval(call("PrbInfBep")))
else rep(0, DayNum)
output2 <- data.frame(khf(output))
}
)
}
我在第二个这样的“foreach:foreach”语句开始时收到“意外符号”错误。
./functions/Parallel.R:19:28: unexpected symbol
18: .packages = c("zoo", "msm", "FAdist"))
19: foreach
^
出于某种奇怪的原因,它似乎对“%:%”很满意,或者它还没有恢复到那个错误。我需要像foreach::foreach::%dopar%这样聪明的东西`
【问题讨论】:
-
Thx,试了一下,现在收到此消息“foreach::foreach 中的错误(j = 1:NumSim,.combine = acomb,.options.mpi = opts1)%:%:找不到function "%dopar%" ",我在这里遵循以前的解决方案,他们确实通过使用 foreach::
%doapr解决了问题,但它对我不起作用。需要说明的是,我还没有构建包,只是试图让代码在不加载整个包的情况下运行。