IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Création de plusieurs fichiers csv à partir d'un dataframe


Sujet :

R

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 22
    Points : 23
    Points
    23
    Par défaut Création de plusieurs fichiers csv à partir d'un dataframe
    Bonjour, j'ai un fichier csv avec plusieurs variables, et chaque variables a plusieurs modalités, comme illustré en bas pour exemple :

    A B C D
    
    a aa aaa aaaa
    a dd ddd ssss
    b ss eee dddd
    b cc fff ffff
    c vv fff gggg
    c gg ddd rrrr
    d ff sss tttt
    d rr ggg gggg
    j'ai fait un code pour réaliser une boucle pour choisir chaque modalité de la variable A par exemple et la mettre avec les données correspondant dans un nouveau fichier csv avec le nom de la modalité comme illustré en bas :
    a.csv
    b.csv
    c.csv
    d.csv

    dans un dossier spécifique avec les données correspondant des autres colonnes (B, C, D) mais je n'arrive pas à avoir les sorties recherchées si vous pouvez m'aider la-dessus et merci !!!

    voila le morceau de codes que j'ai fait, j'espère que j'étais un peu claire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (x in levels(factor(data$A))) {
      files_names=vector("list", length =levels(factor(data$A))
      files_names[[x]]=data$A[[x]]
      n_data<-data[data$A==x,]
      write.csv(n_data, file ="files_names[[x]].csv", row.names = FALSE )
    }

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 476
    Points : 831
    Points
    831
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (x in unique(df$A)){
      write.csv(df[df$A == x,],paste0(x,".csv"),row.names = F)
    }
    cdlt

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 476
    Points : 831
    Points
    831
    Par défaut
    autre solution avec le tidyverse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     library(tidyverse)
    walk(unique(df$A),~write.csv2(df %>% filter(A ==.x),str_c(.x,'.csv'),row.names = F))

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Bonjour, Xavier-pierre, merci pour la réponse je vais essaye ton code et je reviendrai vers toi ;-)







    Citation Envoyé par xavier-Pierre Voir le message
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (x in unique(df$A)){
      write.csv(df[df$A == x,],paste0(x,".csv"),row.names = F)
    }
    cdlt

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2019
    Messages : 22
    Points : 23
    Points
    23
    Par défaut
    Merci beacuoup il marchait comme je voulait ;-)







    Citation Envoyé par xavier-Pierre Voir le message
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (x in unique(df$A)){
      write.csv(df[df$A == x,],paste0(x,".csv"),row.names = F)
    }
    cdlt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. création fichier CSV à partir une table
    Par neoboy dans le forum Macros Access
    Réponses: 11
    Dernier message: 06/12/2012, 11h17
  2. Création d'un fichier CSV à partir d'un dictionnaire
    Par jouclar dans le forum Général Python
    Réponses: 3
    Dernier message: 04/03/2012, 10h38
  3. Création de plusieurs fichier à partir d'une seule requête
    Par V i n c e n t dans le forum Cognos
    Réponses: 5
    Dernier message: 30/06/2011, 10h14
  4. Réponses: 1
    Dernier message: 13/10/2009, 18h37
  5. Réponses: 1
    Dernier message: 20/10/2005, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo