gpt4 book ai didi

r - sapply 与复合函数的速度比较

转载 作者:行者123 更新时间:2023-12-05 00:05:22 38 4
gpt4 key购买 nike

> 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

在阅读了 R 提示问题的答案后,我正在尝试这个。我没想到 sapply 比上述情况下的等效复合函数慢几个数量级。有谁知道为什么会这样?如果我理解正确 sapply 将矢量化并接近最佳速度。

最佳答案

可能 sapply 是 lapply 的简单包装器,它没有被矢量化。试试这个代码:

system.time(sapply(rnorm(10), function (x) {print(length(x)); round(x,2)}))

并在此处查看实现: https://svn.r-project.org/R/trunk/src/main/apply.c

关于r - sapply 与复合函数的速度比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4600243/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com