加速R中的循环运算我在R中有一个很大的性能问题,我编写了一个函数,在data.frame对象。它只是将一个新列添加到data.frame积累一些东西。(简单操作)。这个data.frame大约有850 K行。我的电脑还在工作(现在大约10小时),我对运行时一无所知。dayloop2 <- function(temp){
for (i in 1:nrow(temp)){
temp[i,10] <- i if (i > 1) {
if ((temp[i,6] == temp[i-1,6]) & (temp[i,3] == temp[i-1,3])) {
temp[i,10] <- temp[i,9] + temp[i-1,10]
} else {
temp[i,10] <- temp[i,9]
}
} else {
temp[i,10] <- temp[i,9]
}
}
names(temp)[names(temp) == "V10"] <- "Kumm."
return(temp)}有什么办法加快这个行动吗?
3 回答
![?](http://img1.sycdn.imooc.com/5458692c00014e9b02200220-100-100.jpg)
哈士奇WWW
TA贡献1799条经验 获得超6个赞
for
system.time({ a <- NULL for(i in 1:1e5)a[i] <- i}) user system elapsed 28.36 0.07 28.61
system.time({ a <- rep(1, 1e5) for(i in 1:1e5)a[i] <- i}) user system elapsed 0.30 0.00 0.29
:
system.time(a <- 1:1e5) user system elapsed 0 0 0
- 3 回答
- 0 关注
- 1042 浏览
添加回答
举报
0/150
提交
取消