Lecture de plusieurs fichiers (excel) dans R - Meilleure pratique
J'ai des centaines de moyennes fichiers Excel (entre 5000 et 50.0000 lignes avec environ 100 colonnes) à charger dans R. Ils ont une bien définis modèle de nommage, comme x_1.xlsx
x_2.xlsx
etc.
Je sais qu'il y a de nombreuses façons de charger ces fichiers en R comme pour la boucle ou de lapply-type de solutions. Donc, mes questions sont les suivantes:
Que considérez-vous comme le meilleur (le plus rapide, le plus simple) approche de la lecture de plusieurs fichiers?
Que des astuces ou des fonctions utilisez-vous?
source d'informationauteur Manuel S
Vous devez vous connecter pour publier un commentaire.
Avec
list.files
vous pouvez créer une liste de tous les noms de fichier dans votre workingdirectory. Ensuite, vous pouvez utiliserlapply
en boucle qui liste et lire chaque fichier avec leread_excel
fonction de lareadxl
package:Cette méthode peut bien sûr également être utilisé avec d'autres la lecture du fichier de fonctions comme
read.csv
ouread.table
. Il suffit de remplacerread_excel
avec la fonction de lecture de fichier approprié et assurez-vous d'utiliser le bon modèle danslist.files
.Si vous aussi vous souhaitez inclure les fichiers dans des sous-répertoires, utilisez:
Autres régimes possibles pour la lecture des fichiers Excel: openxlsx & xlsx
En supposant que les colonnes sont les mêmes pour chaque fichier, vous pouvez les lier ensemble dans un dataframe avec
bind_rows
à partir de dplyr:ou avec
rbindlist
à partir de de données.la table:Les deux ont la possibilité d'ajouter un
id
colonne pour identifier les ensembles de données distincts.Mise à jour: Si vous ne voulez pas un identificateur numérique, il suffit d'utiliser
sapply
avecsimplify = FALSE
pour lire les fichiers dansfile.list
:Lors de l'utilisation de
bind_rows
de dplyr ourbindlist
de de données.tableauleid
colonne contient les noms de fichiers.Même une autre approche est d'utiliser le
purrr
-package:D'autres approches pour obtenir une liste nommée: Si vous ne voulez pas juste un identifiant numérique, que vous pouvez attribuer des noms de fichiers à la dataframes dans la liste avant de les lier ensemble. Il y a plusieurs façons de le faire:
Maintenant, vous pouvez lier la liste de dataframes ensemble dans un dataframe avec
rbindlist
de de données.tableau oubind_rows
de dplyr. Leid
colonne contiendra les noms de fichiers au lieu d'un identifiant numérique.