mch*_*ema 4 performance runtime r
> system.time(sapply(rnorm(1000000,0,1), function (x) round(x,2)))
user system elapsed
2.78 0.11 2.89
> system.time(round(rnorm(1000000,0,1),2))
user system elapsed
0.29 0.00 0.30
Run Code Online (Sandbox Code Playgroud)
在阅读了R提示问题的答案后,我正在尝试这个.在上述情况下,我没想到蓝色比等效复合函数慢几个数量级.有谁知道为什么会这样?如果我理解正确,那么矢量化并接近最佳速度.
可能是sapply,这是一个简单的lapply包装器,没有矢量化.试试这段代码:
system.time(sapply(rnorm(10), function (x) {print(length(x)); round(x,2)}))
Run Code Online (Sandbox Code Playgroud)
并在此处查看实现:https://svn.r-project.org/R/trunk/src/main/apply.c