J'avance pas à pas avec ma fonction qui crée les courbes de survie en allant chercher les données via MySQL.
Voici à quoi ressemble ma table de données à traiter :
Code : Tout sélectionner
> tab
code jours event dece sex
1 1 9578 0 0 1
2 2 15139 0 1 1
3 3 5112 0 0 2
4 4 10609 1 1 1
5 5 18421 0 0 1
6 6 10556 0 0 2
7 7 16796 0 1 2
8 8 2284 1 0 2
9 9 19559 1 1 2
10 10 9215 0 0 1
11 11 8135 1 0 1
12 12 3927 0 0 2
13 13 1688 0 1 1
14 14 381 0 0 2
15 15 14371 1 0 2
16 16 1254 0 0 1
17 17 16120 1 0 1
18 18 10883 1 1 2
19 19 6027 0 1 2
20 20 707 0 0 1
et voici mon code :
Code : Tout sélectionner
courbesSurvie<-function(fichierImg,fichierCSV,type_image,vectDuree, vectEvent,genr,Main2="courbes de survie"){
surviSelonSex<-function(vectDure, vecEvent, genr){
ssexe<-censures(vectDure, vecEvent)
surv<-survfit(ssexe~genr)
surv
}
# compte le nombre de groupes différents
NbGrp <- length(levels(factor(genr)))
# trace la courbe générale de survie sans tenir compte d'éventuelles caractéristiques qui distinguent les groupes
# puis la courbe en fonction de la carac 'genr'. Enregistre le tout dans le fichier et le type définis
selon<-surviSelonSex(vectDuree, vectEvent, genr)
tabRes=summary(selon)
if (length(levels(factor(vectEvent))) == "1")
{
df="Pas de valeurs charnières dans le cas où personne n'est confronté à un évènement !!"
write.csv2(df, fichierCSV, row.names = FALSE)
}
else
{
df=as.data.frame(tabRes[c(0,1,2,3,4,5,6)])
write.csv2(df, fichierCSV, row.names = FALSE)
}
bitmap(fichierImg,type_image,width=7.5,height=10,res=72,pointsize=12)
# ça donne le graphe de la survie en fonction du temps
if (NbGrp == 1)
{
pal="darkmagenta"
survie_kaplan<-survfit(Surv(vectDuree, vectEvent))
plot(survie_kaplan, xlab="Temps", ylab="Taux de survie", main=Main2,col=pal, lty=1)
legend("bottomleft", paste(factor("groupe")," = ",levels(factor(genr))), lty=1, col=pal)
}
else
{
pal=palette(rainbow(NbGrp))
plot(selon, col=pal, xlab="Temps", ylab="Taux de survie", main=Main2)
legend("bottomleft", paste(factor("groupe")," = ",levels(factor(genr))), lty=1, col=pal)
}
dev.off()
# ça donne le graphe de la survie selon la caractéristique propre à chaque groupe (ex : le sexe)
}
Ce code me renvoit bien ce que je veux mais mon problème est que, lorsque qu'il y a un seul groupe, le graph m'affiche l'intervalle de confiance de la courbe et pas quand je souhaite comparer plusieurs courbes sur le même graph !
Est ce un problème du logiciel R ou bien y a-t-il moyen d'obtenir les intervalles de confiance de chaque courbe ?
Merci pour toute aide et suggestion...
@+
Romain,