【发布时间】:2017-06-22 06:21:53
【问题描述】:
我有一个有 4 行的数据框。我必须对同一列的当前行值和前一行值求和,但应该迭代到列的顶部
aa<-data.frame(groupid=c(0:3),var=rep(10,4))
>aa
groupid var
0 10
1 10
2 10
3 10
#if iterating over only 4th row
>i=4
#What I want to achieve->
>for(x in 1:aa$groupid[i]) {
aa$var[i]<-aa$var[i]+aa$var[i-x]
}
>aa$var[i]
40 #aa$var[4]+aa$var[3]+aa$var[2]+aa$var[1]
#How I want to achieve--> using sapply() as my real data frame is huge and
#for loop is taking a lot of time
#What I have achieved till now-->
>bb<-sapply(aa$groupid[i], function(x){
sum(aa$var[i],aa$var[i-x])
})
>bb
20 #aa$var[4]+aa$var[3]
如何在 sapply() 中从下到上遍历每一行,以便将值重新保存在同一个变量中?
【问题讨论】:
标签: r for-loop dataframe sapply