首页 > 解决方案 > 自R中最后一次满足条件以来如何对行求和

问题描述

我想找到具有不同条件的两行之间的累积和。

我的数据如下所示:

row   diff   state
1     30     3
2     30     2
3     30     2
4     30     1
5     30     1
6     30     1
7     30     2
8     30     2
9     30     3
10    30     1

对于 state == 1 的每一行,我想知道该行与 state == 3 的前一行之间的累积差异。

这是最终目标:

row   diff   state   lag  
1     30     3       NA
2     30     2       NA
3     30     2       NA
4     30     1       90
5     30     1       120
6     30     1       150
7     30     2       NA
8     30     2       NA
9     30     3       NA
10    30     1       30

我努力了:

df$lag[df$state == 1] <- cumsum(df$diff[df$state == 3])

但这只是给了我自 state == 1 开始以来的 cumsum:

row   diff   state   lag  
1     30     3       NA
2     30     2       NA
3     30     2       NA
4     30     1       30
5     30     1       60
6     30     1       90
7     30     2       NA
8     30     2       NA
9     30     3       NA
10    30     1       30

标签: conditional-statementscumsum

解决方案


推荐阅读