【问题标题】:Preserve list names using parallel versions of lapply function使用并行版本的 lapply 函数保留列表名称
【发布时间】:2014-11-23 14:14:49
【问题描述】:

当我想对列表进行一些操作,并获得具有相同名称的列表时,我使用 sapply 函数:

newList <- sapply(oldList, someFunction, simplify = FALSE,USE.NAMES = TRUE)

是否有可能(以及如何)使用来自应用系列的并行版本的函数来做同样的事情,例如来自并行包的 mclapply?

【问题讨论】:

  • 根据?mclapply,可以。
  • @Roman Luštrik,怎么样?
  • 查看帮助文件。 ... 参数表示您可以使用来自 sapply 的参数。
  • @Roman Luštrik,好的。我发现它适用于 mcmapply 函数,只有当函数是第一个参数并且“SIMPLIFY”用大写字母书写时。谢谢!你能发布你的答案吗?

标签: r parallel-processing lapply sapply


【解决方案1】:

?mclapply 帮助页面说这是可能的(参数SIMPLIFY),尽管仅适用于mcmapply。正如您已经知道的那样,只传递一个对象的(mc)mapply 是一种特殊情况,等效于(mc)lapply

【讨论】:

    【解决方案2】:

    parallel包中有parSapply函数-https://stat.ethz.ch/R-manual/R-devel/library/parallel/html/clusterApply.html

    library("parallel")
    cl <- makeCluster(getOption("cl.cores", 2))
    newList <- parSapply(cl, oldList, someFunction, simplify = FALSE,USE.NAMES = TRUE)
    

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 1970-01-01
      • 2016-11-12
      • 2019-12-20
      • 2020-05-30
      • 1970-01-01
      • 2013-12-23
      • 2015-09-17
      • 1970-01-01
      相关资源
      最近更新 更多