3 回答
TA贡献1804条经验 获得超8个赞
R_execClosure
eval.c
apply
mean
apply
A = matrix(as.numeric(1:100000))
system.time({ Sum = 0 for (i in seq_along(A)) { Sum = Sum + A[[i]] } Sum})
sum(A)
sum
# 0.370 secondssystem.time({ I = 0 while (I < 100000) { 10 I = I + 1 }})# 0.743 seconds -- double the time just adding parenthesessystem.time({ I = 0 while (I < 100000) { ((((((((((10)))))))))) I = I + 1 }})
(
> `(` = function(x) 2> (3)[1] 2
(
TA贡献1796条经验 获得超7个赞
apply
尤伊·利格斯和约翰·福克斯。服务台:我怎样才能避免这个循环,或者让它更快?r新闻,8(1):46-50,2008年5月。
许多关于R状态的评论认为使用循环是一个特别糟糕的主意。这不一定是真的。在某些情况下,很难编写向量化代码,或者向量化代码可能会消耗大量内存。
在循环之前将新对象初始化为完整长度,而不是在循环中增加它们的大小。 不要在循环中做可以在循环之外完成的事情。 不要为了避免循环而避免循环。
for
apply
- 3 回答
- 0 关注
- 544 浏览
添加回答
举报