我目前正在运行许多类似这样的应用程序:
test=data.frame(t=seq(1,5,1),e=seq(6,10,1))
mean(apply(test,2,mean))
我希望将第二行转换为mclapply,以产生与lapply相同的结果。我意识到可以使用for循环从lapply语句中提取每个项目,然后在该向量上使用mean,但这会降低性能,我正试图通过使用mclapply来改进性能。问题是lapply和mcapply都返回一个列表,mean无法使用。我可以使用[[]]获取实际值或test$t和test$e,但test中的列数是可变的,通常超过1,000个。必须有一种更简单的方法来处理这个问题。基本上,我想得到这个语句的平均值:
mclapply(test,mean,mc.preschedule=TRUE)
最好不要生成新的变量或使用for循环。解决方案应等同于获得以下语句的平均值:
lapply(test,mean)
mean(mean(testdf))
只是为了确定您没有展示的总体平均值。我知道这只是一个样式化的例子。很高兴能够帮助到您。 - Dirk Eddelbuettel