Why are `colMeans()` and `rowMeans()` functions faster than using the mean function with `lapply()`?

前端 未结 2 1102
你的背包
你的背包 2021-01-14 12:17

What I want to ask is, algorithmically, what do the rowMeans() and colMeans() functions do to optimize speed?

相关标签:
2条回答
  • 2021-01-14 12:53

    In addition, consider what lapply() does. It sets up repeated calls to the function mean(). So as well as the overhead of actually computing a mean (which is done in fast C code), the lapply() version repeatedly incurs the overhead of the sanity checking code and method dispatch associated with mean().

    rowMeans() and colMeans() incur only a single set of sanity checks as internally, their C code is optimised to loop over the rows/columns there rather than via separate R calls.

    0 讨论(0)
  • 2021-01-14 12:59

    rowMeans and colMeans are faster than because they call C code directly, rather than being interpreted by the R interpreter.

    0 讨论(0)
提交回复
热议问题