Fonction pour export de résultat par boucle

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

Serge Faye
Messages : 34
Enregistré le : 14 Mar 2007, 09:49

Fonction pour export de résultat par boucle

Messagepar Serge Faye » 25 Mai 2009, 17:15

Bonjour,
Mon titre n'est pas très claire, et j'espère qu'en illustrant ce que je veux faire, vous allez comprendre.
J'effectue des tries simples sur un ensemble de plusieurs variables (effectif et %). Sachant que je dois refaire ce travail avec les données définitives, je cherche une façon d'exporter les tableaux sur Excel.
Dans un premier temps je procède comme suit:

Code : Tout sélectionner

an1F <- table(pannee1, useNA="always")
an1P <- signif((prop.table(an1F) )*100,4)
sexeF <-table(psexe, useNA="always")
sexeP <- (prop.table(sexeF) )*100

Cela me permet d'avoir les effectifs d'une part et d'autre part les pourcentages.
Dans un deuxième temps je crée une liste avec deux objets (fréquence par année et par sexe et leurs pourcentages:

Code : Tout sélectionner

freqs = list(cbind(an1F,an1P),  cbind(sexeF, sexeP))

Sachant que le nombre de ligne n'est pas le même entre les deux objets, je ne peux qu'avoir un vecteur et non un data.frame ou une matrice pour directement exporter mes objets sous Excel.
Enfin j'utilise la fonction write.csv2 pour exporter les objets.

Code : Tout sélectionner

write.csv2(freqs,file="resultats.csv",row.names=TRUE, append=TRUE)

Cela ne fonctionne pas pour la raison que j'ai évoqué en haut. Les nombres de lignes sont différentes.
Cependant cela fonctionne quand je précise l'indice de l'objet:

Code : Tout sélectionner

write.csv2(freqs[[2]],file="resultats.csv",row.names=TRUE, append=TRUE)

Ici l'indice est 2.
Ma question est de savoir comme faire une fonction qui lancerait autant de fois qu'il existe d'objet en remplacement l'indice de l'objet par i avec i allant de 1 à n.
Par avance, je vous remercie.

Serge Faye
Messages : 34
Enregistré le : 14 Mar 2007, 09:49

Messagepar Serge Faye » 26 Mai 2009, 07:45

Bonjour,
En parcourant le forum j'ai trouvé un poste que j'ai appliqué à mon cas et le problème est résolu.
Il fallait faire:

Code : Tout sélectionner

for(i in 1:17){
write.csv2(freqs[[i]],file="resultats.csv",row.names=TRUE, append=TRUE)
}


Avec ce script, j'arrive à mettre tous mes tableaux de fréquences dans un classeur excel en ayant trois colonnes (modalité, fréquence, pourcentage).

Cordialement


Retourner vers « Questions en cours »

Qui est en ligne

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