如何基于上一个值填充列+;R中的其他列的值

如何基于上一个值填充列+;R中的其他列的值,r,lag,mutate,R,Lag,Mutate,我想填充一个新列,该列基于列本身的上一个值(其中第一个值设置为1)和event的值 test_model Obs event enum 1056 1 1 1059 1 NA 1070 0 NA 1054 1 NA 1034 0 NA 这应成为: Obs event enum 1056 1 1 1059 1 2 1070 0 2 1054 1 3 1034 0 3 到目前为止,我已尝试使用la

我想填充一个新列,该列基于列本身的上一个值(其中第一个值设置为1)和event的值

test_model

Obs event enum
1056 1      1
1059 1      NA
1070 0      NA
1054 1      NA
1034 0      NA
这应成为:

Obs event enum
1056 1      1
1059 1      2
1070 0      2
1054 1      3
1034 0      3
到目前为止,我已尝试使用
lag()

知道这是怎么发生的吗&
我应该如何实现我的目标?

我认为您正在寻找cumsum()函数

test_model <- data.frame(Obs = c(1056,1059,1070,1054,1034),
                     event = c(1,1,0,1,0))
test_model$enum <- cumsum(test_model$event)

#Or using the tidyverse
test_model <- test_model %>% mutate(enum = cumsum(event))

test\u模型您正在寻找
mutate(test\u模型,enum=cumsum(事件))
Obs event enum
1056 1      1056
1059 1      1059
1070 0      1070
1054 1      1054
1034 0      1034
test_model <- data.frame(Obs = c(1056,1059,1070,1054,1034),
                     event = c(1,1,0,1,0))
test_model$enum <- cumsum(test_model$event)

#Or using the tidyverse
test_model <- test_model %>% mutate(enum = cumsum(event))