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 :

Importer plusieurs fichiers CSV R


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 9
    Par défaut Importer plusieurs fichiers CSV R
    Bonjour à tous,

    Je viens vers vous car j'ai un problème que je n'arrive pas à résoudre.
    J'ai environ 2000 fichiers csv que je souhaiterais importer dans une même et unique table sur R.
    Ceux-ci se présentent de la manière suivante : VILLE_JJ_MM_AAAA.csv

    Tous ces fichiers se trouvent dans un dossier : D:/Rep/..../dossier

    Est-il possible d'importer tous les fichiers d'un même dossier en sachant que j'ai 4 villes différentes.
    Idéalement, chaque ville aurait une table sur R.

    Je ne sais pas si ce que je demande est réalisable, mais dans le doute je viens vers vous

    MERCI A VOUS POUR VOTRE TEMPS !

  2. #2
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Utiliser une variable caractères comme nom de dataframe
    Bonjour,

    Voici une proposition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setwd("D:/Rep/..../dossier")
    liste_fichiers <- list.files(".", pattern="csv")
    n=length(liste_fichiers)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    df_paris <- data.frame()
    df_lyon <- data.frame()
    df_avignon <- data.frame()
    df_marseille <- data.frame()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    library(stringr)
    library(dplyr)
    for (i in 1:n) 
      {
      ville <- unlist(str_split(liste_fichiers[i],"_"))[1]
      df <- read.csv(liste_fichiers[i])
      assign(str_c("df_",ville), bind_rows(get(str_c("df_",ville)),df))
      }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    df_paris
    df_lyon
    df_avignon
    df_marseille
    Cordialement,

  3. #3
    Membre émérite
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Par défaut
    Un petite modification par rapport à la proposition de mgdondon, éviter le setwd assez casse-gueule (on change le répertoire de travail !), utiliser directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste_fichiers <- list.files("D:/Rep/..../dossier", pattern="csv$", full.names=TRUE)

  4. #4
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Importer plusieurs fichiers CSV R
    Bonjour,

    Tout est dans l'option full.names=TRUE, merci.

    Par contre ça complique l'extraction de la ville.

    Cordialement,

  5. #5
    Membre émérite
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Par défaut
    Par contre ça complique l'extraction de la ville.
    Pas tant que cela, il suffit d'utiliser la fonction basename, ce qui donnera dans le script suggéré par mgdondon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ville <- unlist( basename( str_split(liste_fichiers[i],"_")))[1]

  6. #6
    Membre Expert
    Inscrit en
    Novembre 2009
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 707
    Par défaut Importer plusieurs fichiers CSV R
    Merci pour la fonction basename() (il faut inverser les fonctions unlist() et basename()).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ville <- basename(unlist(str_split(liste_fichiers[i],"_")))[1]
    Cordialement,

Discussions similaires

  1. [XL-2010] Importer plusieurs fichiers csv automatiquement dans le même classeur
    Par matthieu44 dans le forum Excel
    Réponses: 2
    Dernier message: 27/01/2017, 11h43
  2. [9.3] Importer plusieurs fichiers csv
    Par mrbrams dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/11/2014, 13h15
  3. Import plusieurs fichiers csv dans une table
    Par snoopo dans le forum Import/Export
    Réponses: 4
    Dernier message: 17/02/2012, 16h07
  4. [Conseil] Import de fichier CSV vers MySQL
    Par ShinJava dans le forum JDBC
    Réponses: 6
    Dernier message: 15/03/2005, 19h14
  5. Importation de fichier CSV vers une base Interbase
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 15/03/2005, 15h18

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