Je suis novice sous R, et j'ai fait un script pour une boucle qui semble avoir un problème que je n'arrive pas a résoudre, j'utilise plusieurs boucles imbriquées et j'ai l'impression qu'elles ne fonctionnent pas dans l'ordre dans lequel je le voudrais.
Je vous explique d'abord mes données:
J'ai une fichier contenant en lignes mes échantillons et en colonnes les valeurs mesurées:
Code : Tout sélectionner
> met
plaque ech repet m Prot-µg Prot-µgnorm Glu-µmol Glu-mg
1 I 0 13 20.0 5.010 12.2 66.5 12.0
2 I 0 38 19.8 5.060 12.3 48.7 8.8
Code : Tout sélectionner
####Avec une boucle pour toutes les condition et les colonnes:
#vider les vecteur qui vont recevoir les valeurs calculées:
Statx=NULL
Statq=NULL
#Creer le vecteur contenant les lignes que je veux analyser:
x<-met[(7:180),]
x<- x[-c(85:90),]
#Creer un vecteur me permetant de faire "sauter des lignes" a la boucle:
step1<- c(0,6,12,18,24,30,36,42,48,54,60,66,72,78,84,90,96,100,106,112,118)
#1ere boucle pour changer de ligne:
for (j in step1)
{
#Creer un vecteur contenant les numéros des colones que je veux analyser:
y<-c(5:20)
#2nd boucle pour changer de colonne:
for (q in y )
{
#sortir la moyenne des 6 lignes sélectionnées:
moy <- mean(x [((1+j):(6+j)),q])
#sortir l'écart type des 6 lignes sélectionnées:
ed <- sd(x [((1+j):(6+j)),q])
# coler ces valeurs en tant que colonne d'une matrice
ci <- cbind(moy, ed)
# coler ces valeurs en tant que colonne d'une matrice a chaque itération de changement de colone ds le vecteur pere:
Statq<-cbind(Statq,ci)
}
# coler ces valeurs en tant que lignes d'une matrice a chaque itération de changement de ligne ds le vecteur pere:
Statx<-rbind(Statx,Statq)
}
##Enregistrer la matrice dans un fichier Excel:
write.table(Statx, file = 'StatX.xls', append = FALSE, quote = TRUE, sep = "\t",
eol = "\r\n", na = " ", dec = ".", row.names = TRUE,
col.names = TRUE)
Code : Tout sélectionner
Erreur dans rbind(Statx, Statq) :
le nombre de colonnes des matrices doit correspondre (voir argument 2)
Je pense qu'il suffit que je fasse vider le contenu de Statq a la fin de la boucle "changement de colonne du vecteur père", mais je ne sais pas ou le placer exactement (j'ai essayé ça fait n'importe quoi..)
Une idée pour arranger mon problème??
Merci