自上次满足条件R

时间:2019-03-07 16:30:21

标签: conditional-statements cumsum

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

我的数据如下:

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

对于状态== 1的每一行,我想知道该行与状态== 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])

但这只是从状态开始== 1以来给了我的积淀。

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

0 个答案:

没有答案