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 に答える