Заранее благодарен за любую помощь.
У меня есть приведенный ниже кадр данных
> df <- data.frame(
id = c(1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5),
time = c(1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6),
mortality = c(NA,1,0,0,0,0,NA,0,0,0,0,1,NA,0,0,0,0,0,NA,0,0,1,0,0,NA,0,1,0,0,0)
)
> head(df)
id time mortality
1 1 1 NA
2 1 2 1
3 1 3 0
4 1 4 0
5 1 5 0
6 1 6 0
df$id
представляет индивидуумов, измеренных в шести точках времени на протяжении всего пути выживания. В начале испытания все люди живы, и впоследствии они остаются или остаются живыми. df$mortality
представляет, в течение какого периода времени человек умер, например, человек 1 умер в период времени 2.
Я хотел бы создать новую переменную, указывающую то, что я назвал совокупным выживанием. Это будет указывать, если человек умер в текущий период времени или любой из предыдущих периодов времени. Как бы я это закодировал?
Я пробовал несколько разных способов, используя операторы ifelse()
и dplyr group_by()
, но безуспешно.
Ниже показано, как должен выглядеть новый фрейм данных. Спасибо
> df
id time mortality cum.survival
1 1 1 NA 0
2 1 2 1 1
3 1 3 0 1
4 1 4 0 1
5 1 5 0 1
6 1 6 0 1
7 2 1 NA 0
8 2 2 0 0
9 2 3 0 0
10 2 4 0 0
11 2 5 0 0
12 2 6 1 1
13 3 1 NA 0
14 3 2 0 0
15 3 3 0 0
16 3 4 0 0
17 3 5 0 0
18 3 6 0 0
19 4 1 NA 0
20 4 2 0 0
21 4 3 0 0
22 4 4 1 1
23 4 5 0 1
24 4 6 0 1
25 5 1 NA 0
26 5 2 0 0
27 5 3 1 1
28 5 4 0 1
29 5 5 0 1
30 5 6 0 1