每次我看到有关R中并行处理的问题时,都会使用foreach
函数。由于for
循环不太像R语言,是否有apply
的并行版本,如果有,为什么没有更受欢迎呢?
每次我看到有关R中并行处理的问题时,都会使用foreach
函数。由于for
循环不太像R语言,是否有apply
的并行版本,如果有,为什么没有更受欢迎呢?
有许多并行版本的*apply
,从以下开始:
snow
中的parLapply()
multicore
中的mclapply()
Rmpi
中的mpi.apply()
还有专门的包,如papply(可能不再维护)。
@Dirk 是正确的。我想补充一下,plyr
包现在支持并行后端。
对于 plyr
包来说,可能很少提到它,因为添加并行后端不需要考虑太多:只是一个标志而已。
foreach
的吸引力在于它允许我将多个变量传递到函数中,选择如何组装结果,并且比apply
等价物更易读。但是我不知道它们在速度方面如何比较。 - Backlinfor
与apply
(非并行版本)进行,人们也会为apply
家族激烈争论。这既是一种风格问题,也是一种速度问题... - Ari B. Friedman