Récupération du summary()

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Romain Lecachey
Messages : 33
Enregistré le : 10 Avr 2007, 08:57

Récupération du summary()

Messagepar Romain Lecachey » 16 Mai 2007, 09:06

Bonjour à tous !

J'ai un petit soucis :
Je voudrais récupérer le summary transformé en tableau et l'envoyer dans un fichier !
Voici ma fonction :

Code : Tout sélectionner

grapheSurvie <- function(fichier,type_image,vectDuree, vectEvent){
survie_kaplan<-survfit(Surv(vectDuree, vectEvent))
#tabRes = summary(survie_kaplan)
#data.frame(tabRes)
#write.table(tabRes, "/home/rom/")
bitmap(fichier, type_image,10,10,72,12)
plot(survie_kaplan, xlab="Temps", ylab="Taux de survie", main="Courbe de survie de Kaplan-Meier",col="blue", lty=1)
dev.off()
graphics.off()
}

Mes lignes sont commentées volontairement car j'ai le message d'erreur suivant qui s'affiche :
Erreur dans as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) : impossible de convertir automatiquement "summary.survfit" en un tableau de données (data.frame)
J'obtiens bien l'image mais impossible d'avoir le summary() !
Est-ce néammoins possible de le récupérer de cette manière ou par le biais d'une autre méthode ?
Merci pour votre aide car je bloque !
@+

Logez Maxime
Messages : 2897
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 16 Mai 2007, 09:45

Bonjour,


ton problème vient du passage du fait que ton summary n'a pas une classe qui te permet de le passer directement en data.frame : class(tabRes) "summary.survfit". Par contre tu dois pouvoir récupérer ce qui t'interesse par : as.data.frame(tabres[c(2:4,1,6:9)]) ou la tu vas récupérer un tableau. Après soit tu passes par un read.table sur le tableau ou tu peux encore passer par la fonction sink en utilisant un split pour avoir le même type d'affichage que dans le summary.

Maxime[/code]

Romain Lecachey
Messages : 33
Enregistré le : 10 Avr 2007, 08:57

Messagepar Romain Lecachey » 16 Mai 2007, 10:41

Re-Bonjour !
Merci de m'avoir répondu !
J'ai étudié ta réponse et je l'ai testée (en remplaçant read.table par write.table, ça me paraissait plus logique je pense pour récupérer mon tableau dans un fichier). Le problème, c'est que ça marche très bien avec un tableau ordinaire mais toujours pas avec la fonction survfit !
Voici ce que je teste :

Code : Tout sélectionner

grapheSurvie <- function(fichier,type_image,vectDuree, vectEvent){
survie_kaplan<-survfit(Surv(vectDuree, vectEvent))
tabRes = summary(survie_kaplan)
as.data.frame(tabRes[c(1,3)])
write.table(tabRes, "/home/rom/tabResSurv")
bitmap(fichier, type_image,10,10,72,12)
plot(survie_kaplan, xlab="Temps", ylab="Taux de survie", main="Courbe de survie de Kaplan-Meier",col="blue", lty=1)
dev.off()
graphics.off()
}

Je ne comprends pas il doit y avoir une fonction spéciale dans ce cas ! (Je ne connais pas la fonction sink ! )
Merci d'avance si tu trouve une solution !
@+

Logez Maxime
Messages : 2897
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 16 Mai 2007, 11:28

Romain Lecachey a écrit :Re-Bonjour !
Merci de m'avoir répondu !
J'ai étudié ta réponse et je l'ai testée (en remplaçant read.table par write.table, ça me paraissait plus logique je pense pour récupérer mon tableau dans un fichier). Le problème, c'est que ça marche très bien avec un tableau ordinaire mais toujours pas avec la fonction survfit !
Voici ce que je teste :

Code : Tout sélectionner

grapheSurvie <- function(fichier,type_image,vectDuree, vectEvent){
survie_kaplan<-survfit(Surv(vectDuree, vectEvent))
tabRes = summary(survie_kaplan)
as.data.frame(tabRes[c(1,3)])
write.table(tabRes, "/home/rom/tabResSurv")
bitmap(fichier, type_image,10,10,72,12)
plot(survie_kaplan, xlab="Temps", ylab="Taux de survie", main="Courbe de survie de Kaplan-Meier",col="blue", lty=1)
dev.off()
graphics.off()
}

Je ne comprends pas il doit y avoir une fonction spéciale dans ce cas ! (Je ne connais pas la fonction sink ! )
Merci d'avance si tu trouve une solution !
@+


Pour ce qui est du read.table je voulais parler de write.tablea, mea culpa.

Ce que je t'ai répondu dans le post précédent est qu'il n'ya pas de fonction qui directement mette le summary dans un tableau. Le problème de ton code ici est que tu tapesas.data.frame(tabRes[c(1,3)]) mais que tu ne stockes nul part ce tableau, donc quand tu fais après write.table(tabRes,...) à ce moment la tu essaies d'exporter le summary et non pas le tableau que tu as généré avec as.data.frame Pour ce qui est de sink je te conseille d'abord de regarder l'aide.

Maxime

Romain Lecachey
Messages : 33
Enregistré le : 10 Avr 2007, 08:57

Messagepar Romain Lecachey » 16 Mai 2007, 14:56

C bon : problème résolu !
Je te remercie pour ton aide, c cool !
Bonne fin de journée @+


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot], Google [Bot] et 1 invité