R 向数据帧添加时机标志

R 向数据帧添加时机标志,r,dataframe,R,Dataframe,对于每个人,我想在数量大于零时为我的数据帧添加一个场合标志。我需要这个标志来进一步计算。这就是我想要实现的目标 dfin <- ID AMT 1 50 1 NA 1 10 1 NA 2 15 2 NA 2 NA 3 10 3 15 dfout <- ID AMT FLAG 1 50 1 1 NA 1 1 10 2 1 NA 2 2 15 1 2 NA 1 2 NA 1 3 10 1 3

对于每个人,我想在数量大于零时为我的数据帧添加一个场合标志。我需要这个标志来进一步计算。这就是我想要实现的目标

dfin <- 

ID AMT 
1  50
1  NA
1  10
1  NA
2  15
2  NA
2  NA
3  10
3  15

dfout <- 

ID  AMT FLAG
1   50   1
1   NA   1
1   10   2
1   NA   2
2   15   1
2   NA   1
2   NA   1
3   10   1
3   15   2

dfin您可以测试哪些值不是NA并计算累积和

dfout = dfin
dfout$FLAG = cumsum(!is.na(dfin$AMT))
dfout
  ID AMT FLAG
1  1  50    1
2  1  NA    1
3  1  10    2
4  1  NA    2
5  2  15    3
6  2  NA    3
7  2  NA    3
8  3  10    4

因为我已经改变了我想要的输出。我在这里是根据@G5W提供的答案回答这个问题的,
ID

library(dplyr)
dfout <- dfin %>%
    group_by(ID) %>%
    mutate(FLAG = cumsum(!is.na(AMT)))
库(dplyr)
dfout%
分组依据(ID)%>%
突变(FLAG=cumsum(!is.na(AMT)))

非常感谢!很抱歉,我稍微更改了我想要的输出。我们可以按照
ID