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 :
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 :
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 :
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 :
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
Partager