【问题标题】:mclapply additional argumentsmclapply 附加参数
【发布时间】:2013-04-06 15:06:12
【问题描述】:

我创建了一个函数 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))

我得到了错误

all scheduled cores encountered errors in the user code

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

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

谢谢

【问题讨论】:

    标签: r parallel-processing lapply mclapply


    【解决方案1】:

    您可以从以下示例中看到mclapply 确实允许以这种方式添加额外参数:

    mclapply(2:4, function(i,j,k) c(i,j,k), i=1, k=5)
    

    我认为您的问题是 mclapply 不接受 SIMPLIFY 参数,因此它将它传递给您的函数导致错误。您可能会对mcmapply 感到困惑,它确实需要SIMPLIFY 参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-13
      • 2013-08-04
      • 2019-06-21
      • 1970-01-01
      • 2023-03-29
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多