Petit algorithme avec la fonction for

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

sylvie ahoussou
Messages : 11
Enregistré le : 18 Oct 2007, 19:50

Petit algorithme avec la fonction for

Messagepar sylvie ahoussou » 26 Sep 2008, 14:25

Bonjour

J'aimerai faire une boucle pour que R calcule des prévalences pour 4 quarters de 6 années et m'empile le tout dans un tableau
J'ai essayé d'écrire un code avec la fonction for mais j'obtiens le message d'erreur suivant

> for (i in (1:6)) {
+
+ tab1<- tab[tab$Quarters =="0[i]-Q1",]
+ clustot1<-svydesign(id=~num+Id_An, fpc=~fpc1+Totanim,strata = NULL, data=tab1)
+ res1<-data.frame(svymean(~Tbtpos,clustot1,na.rm = TRUE))
+
+ tab2<- tab[tab$Quarters =="0[i]-Q2",]
+ clustot2<-svydesign(id=~num+Id_An, fpc=~fpc1+Totanim,strata = NULL, data=tab2)
+ res2<-data.frame(svymean(~Tbtpos,clustot2,na.rm = TRUE))
+
+ tab3<- tab[tab$Quarters =="0[i]-Q3",]
+ clustot3<-svydesign(id=~num+Id_An, fpc=~fpc1+Totanim,strata = NULL, data=tab3)
+ res3<-data.frame(svymean(~Tbtpos,clustot3,na.rm = TRUE))
+
+ tab4<- tab[tab$Quarters =="0[i]-Q4",]
+ clustot4<-svydesign(id=~num+Id_An, fpc=~fpc1+Totanim,strata = NULL, data=tab4)
+ res4<-data.frame(svymean(~Tbtpos,clustot4,na.rm = TRUE))
+
+ dfr[i]<-rbind (res1,res2,res3,res4)
+ dfr[i]$Quarter<- c("0[i]-Q1","0[i]-Q2","0[i]-Q3","0[i]-Q4") }
Erreur dans rowSums(table(ids[, 1], strata[, 1]) > 0) :
'x' doit être un tableau ayant au moins 2 dimensions

lorque j'essaye d'éxecuter independemment les lignes de colonnes pour i = 1 par exemple ca marche donc j'imagine que c'est ma boucle qui ne fonctionne pas. Est ce que vous voyez ce qu'il manque ?

Merci d'avance

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

Messagepar Logez Maxime » 26 Sep 2008, 14:31

Bonjour,


peux tu nous donner la sortie de R quand tu fais table(tab$Quarters).

Maxime[/code]

sylvie ahoussou
Messages : 11
Enregistré le : 18 Oct 2007, 19:50

Messagepar sylvie ahoussou » 26 Sep 2008, 14:40

biensur

table(tab$Quarters)

table(tab$Quarters)

02-Q1 01-Q2 02-Q2 01-Q1 01-Q3 02-Q3 02-Q4 03-Q1 03-Q3 03-Q2
5135 7984 5597 11587 6825 3282 1762 7805 8197 5812
04-Q4 04-Q3 04-Q1 05-Q3 06-Q3 01-Q4 03-Q4 04-Q2 05-Q1 05-Q2
5067 5475 1933 3341 27 5669 177 5384 4580 6113
05-Q4 06-Q1 06-Q2
344 4851 2358

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

Messagepar Logez Maxime » 26 Sep 2008, 14:43

Re,

alors ce qui ne fonctionne pas dans ton code c'est : "0[i]-Q il faut que tu les remplaces par : paste("0",i,"-Q.",sep="").

Maxime

EDIT : j'avais oublié le "-" dans la fonction paste.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité