为什么`colMeans()`和`rowMeans()`函数比使用`lapply()`的mean函数更快?

时间:2012-10-06 12:47:14

标签: performance r mean

我想问的是,在算法上,rowMeans()colMeans()函数对优化速度有何作用?

2 个答案:

答案 0 :(得分:5)

此外,请考虑lapply()的作用。它设置了对函数mean()的重复调用。因此,除了实际计算均值(在快速C代码中完成)的开销之外,lapply()版本反复产生与mean()相关联的健全性检查代码和方法调度的开销。

rowMeans()colMeans()只在内部产生一组完整性检查,其C代码经过优化,可以在那里循环遍历行/列,而不是通过单独的R调用。

答案 1 :(得分:4)

rowMeanscolMeans比直接调用C代码更快,而不是由R解释器解释。