mclapply附加参数

4
我创建了一个名为DevCstat()的函数。
它接受参数:indat、mod、Covar、txtMat和PatCovar。
indat是一个列表,我希望将该函数应用于列表中的每个元素。
mod、Covar、txtMat和PatCovar是对象,我希望在每次调用函数时使用它们,这些对象不会随着列表元素而改变。
这似乎可以工作:
lapply(test, DevCstat, mod='A', Covar=Covar,txtMat=txtMat, PatCovar=PatCovar)

然而,并行版本无法运行:

mclapply(test,DevCstat,mod = 'A', Covar=Covar, txtMat=txtMat, PatCovar=PatCovar, SIMPLIFY = F, mc.cores = getOption("mc.cores", numcore))

I get the error

all scheduled cores encountered errors in the user code

我认为问题在于mclapply没有传递额外的参数。

有人知道如何正确地做到这一点吗?

谢谢。

1个回答

7
你可以从以下示例中看到,mclapply可以通过以下方式允许额外的参数:
mclapply(2:4, function(i,j,k) c(i,j,k), i=1, k=5)

我认为你的问题在于 mclapply 不接受 SIMPLIFY 参数,因此它会将其传递给你的函数,导致出错。你可能混淆了 mcmapplySIMPLIFY 参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接