Bonjour à tous,

j'ai un soucis pour mettre une boucle for sur une procédure GLS.

Je vous explique mon problème. J'étudie plusieurs performances sur plusieurs individus au cours du temps.
Ma gls simple s'écrit de la façon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
A<-gls(PERF~LOT*SA, data = DV1, corr=corAR1(form = ~ 1|REP), na.action = na.exclude, method="REML")
PERF représente la performance
LOT * SA : les 2 facteurs d'étude (LOT et Semaine d'Age)
DV1 est le nom de ma base de données
REP représente la REPétition (ie l'individu dans ce cas).

Cette procédure tourne très bien et me permet par la suite de sortir une ANOVA de façon simple.

Petit soucis, j'ai un nombre très important de performances. J'aimerais donc faire une boucle for sur mon code afin d'automatiser tout ça. Mon but étant d'avoir en sortie les anova des différentes performances.

J'utilise communément la structuration en boucle for avec des lm() par le code qui suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
for(i in c(5:10))
{ 
  ano<-lm(DV1[,i]~LOT*SA, data=DV1)
  print(Anova(ano))  
  print(summary(ano))
}
Je me suis donc d'abord inspiré de cela en écrivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
for(i in c(5:10))
{ 
  ano<-gls(DV1[,i]~LOT*SA, data = DV1, corr=corAR1(form = ~ 1|REP), na.action = na.exclude, method="REML")
  print(Anova(ano)) 
}
Et j'obtiens le message d'erreur suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Error in model.frame.default(formula = ~REP + DV1 + i + LOT + SA, data = list( : 
  type (list) incorrect pour la variable 'DV1'

J'ai le sentiment qu'il ne comprend pas l'écriture DV1[,i].

Auriez vous déjà rencontrer ce type de problème et si oui, comment le résoudre ?


D'avance merci,


Cléo