Boucle avec GLM et sortie png

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

Fanny Buard
Messages : 19
Enregistré le : 05 Juil 2018, 07:16

Boucle avec GLM et sortie png

Messagepar Fanny Buard » 06 Juil 2018, 08:37

Bonjour,
Je débute dans R, j'ai encore du mal à réaliser des boucles. Ici j'aimerai faire un glm en boucle pour ma variable de 3 échantillons, puis ressortie le glht sous format png. Le code, hors boucle, fonctionne parfaitement, avec boucle, cela ne fonctionne pas, je n'ai aucune sortie png :

for (echantillon in 1:3) {
data_bino2<-data_bino[data_bino$N_SERIE==serie]
data_bino2$Con<-as.factor(data_bino2$Con)
data_bino2$Antago<-as.numeric(data_bino2$Antago)
M1<-glm("Antago~Con",family=binomial(link=logit), data=data_bino2)
ANO<-anova(M1, test="Chi")
A<-summary(glht(model=M1, linfct = mcp(Con = "Tukey")))
B<-table_glht(A)
C<-data.frame(B)
C$Significativité<-NA
C[1,5]<-ETOIL(C[1,4]) # Fonction pour ajouter les étoiles de significativité
C[2,5]<-ETOIL(C[2,4])
C[3,5]<-ETOIL(C[3,4])
C[4,5]<-ETOIL(C[4,4])
C[5,5]<-ETOIL(C[5,4])
C[6,5]<-ETOIL(C[6,4])
tt<- ttheme_minimal(
core=list(bg_params = list(col="grey"),
fg_params=list(fontface=10), fontface=4),
colhead=list(fg_params=list(col="black", fontface=4)),
rowhead=list(fg_params=list(col="black", fontface=10L)))
png(paste(filename = "STAT_5_T3_CON_GLHT_", HE,".png"), width = 600, height = 200)
grid.table(C, theme=tt)
dev.off()
}

D’avance merci !

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: Boucle avec GLM et sortie png

Messagepar Serge Rapenne » 06 Juil 2018, 09:14

Bonjour,

Sans les données, il est difficile de comprendre le code et de faire des tests mais :
    la variable d'itération dans la boucle s'appelle échantillon et elle n'est utilisé nul par dans la boucle.
    Ne serait ce pas plutôt :

Code : Tout sélectionner

data_bino2<-data_bino[data_bino$N_SERIE==echantillon]

    je ne vois aucune modification de HE (qui n'est d’ailleurs défini nul par) donc

Code : Tout sélectionner

paste(filename = "STAT_5_T3_CON_GLHT_", HE,".png")
garde toujours la même valeur donc les png successif écrasent le précédent.

Serge

Fanny Buard
Messages : 19
Enregistré le : 05 Juil 2018, 07:16

Re: Boucle avec GLM et sortie png

Messagepar Fanny Buard » 06 Juil 2018, 13:01

Merci pour votre réponse, j'ai modifié le script entre temps :
for (echantillon in 1:3) {
HE<-c("CANNELLE","CORIANDRE","THYM")
data_bino2<-data_bino[data_bino$Echantillon==echantillon,]
data_bino2$Con<-as.factor(data_bino2$Con)
data_bino2$Antago<-as.numeric(data_bino2$Antago)
M1<-glm("Antago~Con",family=binomial(link=logit), data=data_bino2)
ANO<-anova(M1, test="Chi")
A<-summary(glht(model=M1, linfct = mcp(Con = "Tukey")))
B<-table_glht(A)
C<-data.frame(B)
C$Significativité<-NA
C[1,5]<-ETOIL(C[1,4])
C[2,5]<-ETOIL(C[2,4])
C[3,5]<-ETOIL(C[3,4])
C[4,5]<-ETOIL(C[4,4])
C[5,5]<-ETOIL(C[5,4])
C[6,5]<-ETOIL(C[6,4])
tt<- ttheme_minimal(
core=list(bg_params = list(col="grey"),
fg_params=list(fontface=10), fontface=4),
colhead=list(fg_params=list(col="black", fontface=4)),
rowhead=list(fg_params=list(col="black", fontface=10L)))
png(paste(filename = "STAT_5_T3_CON_GLHT_", HE,".png"), width = 600, height = 200)
grid.table(C, theme=tt)
dev.off()
}


Comment vous communiquer mon jeu de données ?
Quand je lance le code j'ai un message d'erreur pour le glm :
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
les contrastes ne peuvent être appliqués qu'aux facteurs ayant au moins deux niveaux
Et toujours aucune sortie png...

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: Boucle avec GLM et sortie png

Messagepar Serge Rapenne » 06 Juil 2018, 13:14

pour insérer des données cf : viewtopic.php?f=1&t=3302

Serge


Retourner vers « Questions en cours »

Qui est en ligne

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