1

我正在尝试为经常性事件创建一个名为 strata 的变量。这个想法是定义一个变量来计算事件,但填充以前的记录。定义计数的是变量事件,如下所示:

id event   cov    strata      year
1   0       0        1        12
1   0       1        1        13
1   1       1        1        14
1   0       1        2        15
1   1       0        2        16
1   1       1        3        17
1   0       0        4        18
1   0       1        4        19
1   0       1        4        20

我至少为事件记录尝试过这样的事情:

id  <- c(rep(1,9), rep(2,5), rep(3,7))
event  <- c(0,0,1,0,1,1,0,0,0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1)
cov  <- c(0,1,1,1,0,1,0,1,1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1)
year  <- c(seq(12,20,1), seq(12,16,1), seq(12,18,1)) 
dat  <- data.table(id,event, cov, year)

dat[,strata:=seq(.N),by="id"]

但它不起作用。

有任何想法吗?谢谢

4

1 回答 1

5

这是一个更新的解决方案。

dat  <- data.table(id,event, cov, year)
dat[, strata := c(1L,head(cumsum(event)+1L,-1L)), by = id]
于 2012-12-04T22:25:51.860 回答