使用lapply函数的并行版本保留列表名称

时间:2014-11-23 14:14:50

标签: r parallel-processing lapply sapply

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

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

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

2 个答案:

答案 0 :(得分:2)

?mclapply帮助页面说明这是可能的(参数SIMPLIFY),但仅适用于mcmapply。正如您已经知道的那样,仅传递一个对象的(mc)mapply是一个特例,相当于(mc)lapply

答案 1 :(得分:0)

并行包中有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)