当我想对列表进行一些操作,并获得与结果相同名称的列表时,我使用了sapply函数:
newList <- sapply(oldList, someFunction, simplify = FALSE,USE.NAMES = TRUE)
是否可以(以及如何)使用apply family的并行版本的函数来做同样的事情,例如来自并行包的mclapply?
答案 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)