我已经创建了一个函数DevCstat()。
它接受参数: indat,mod,Covar,txtMat,PatCovar。
indat是一个列表,我想将该函数应用于列表的每个元素。
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))我得到了错误
all scheduled cores encountered errors in the user code我认为问题在于mclapply没有传递额外的参数。
有谁知道如何正确地这样做吗?
谢谢
发布于 2013-04-06 23:50:36
从下面的示例中可以看出,mclapply确实允许以这种方式使用额外的参数:
mclapply(2:4, function(i,j,k) c(i,j,k), i=1, k=5)我认为你的问题是mclapply没有接受SIMPLIFY参数,所以它会将它传递给你的函数,从而导致错误。您可能会对mcmapply感到困惑,因为它接受SIMPLIFY参数。
https://stackoverflow.com/questions/15852482
复制相似问题