Création manuelle tableau Kaplan-Meier
Bonjour,
Je souhaiterais créer un programme effectuant une analyse de survie sans passer par la fonction surv par exemple, mais en passant par la création manuelle du tableau de Kaplan-Meier.
L'idée serait qu'à partir d'un jeu de données je reproduise ce tableau. Le problème c'est que je rencontre des difficultés toutes bêtes concernant la manipulation des données.
Voilà un exemple de données (dat) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| "id" "time" "event"
1 15 1
2 23 1
3 23 1
4 24 0
5 48 0
6 54 1
7 66 1
8 68 1
9 72 0
10 72 0
11 72 0
12 72 0
13 72 0
14 72 0
15 72 0
16 72 0
17 72 0
18 72 0
19 72 0
20 72 0
21 72 0
22 72 0
23 75 1
24 76 0
25 76 0 |
Je souhaiterais à partir de mes données obtenir ce tableau dans R (km):
Code:
1 2 3 4 5 6 7 8 9 10 11
| time censored events
1 15 0 1
2 23 0 2
3 24 1 0
4 48 1 0
5 54 0 1
6 66 0 1
7 68 0 1
8 72 14 0
9 75 0 1
10 76 2 0 |
J'ai utilisé ce code,
Code:
a<-table(dat$time,dat$event)
mais cela ne me convient pas pour travailler avec le tableau produit. Pouvez-vous m'indiquer comment réalisé le tableau attendu ?
Merci par avance.
PS : Voici un extrait de la suite de mon code (sous l'hypothèse que j'ai le bon tableau) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| nb<-nrow(km)
#inserer une ligne avec les valeurs 0
km=rbind(0,km)
risk<-nrow(dat)
risk[1]
events<-km[,3]
censored<-km[,2]
for(i in 1:nb){
risk[i+1]<-(risk[i]-events[i]-censored[i])
}
km<-cbind(km,risk)
km<-subset(km, events != 0)
km<-km[,-2]
km |