我知道循环很慢R
我应该尝试以矢量化的方式做事。
但为什么?为什么循环很慢并且apply
快吗?apply
调用几个子函数——这看起来并不快。
Update:抱歉,这个问题问得不好。我将矢量化与apply
。我的问题应该是,
“为什么矢量化速度更快?”
循环并不总是很慢并且apply
速度很快。在 中对此有一个很好的讨论2008年5月《R新闻》 http://www.r-project.org/doc/Rnews/Rnews_2008-1.pdf:
乌韦·利格斯和约翰·福克斯。 R 帮助台:我怎样才能避免这个循环或
让它更快? R 新闻,8(1):46-50,2008 年 5 月。
在“循环!”部分中(从第 48 页开始),他们说:
许多关于 R 的评论都指出使用循环是一个特别糟糕的主意。这不一定是真的。在某些情况下,很难编写矢量化代码,或者矢量化代码可能会消耗大量内存。
他们进一步建议:
- 在循环之前将新对象初始化为完整长度,而不是
而不是在循环内增加它们的大小。
- 不要做某事
可以在循环外完成的循环。
- 不要简单地避免循环
为了避免循环。
他们有一个简单的例子,其中for
循环需要 1.3 秒,但是apply
内存不足。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)