J'ai un dossier contenant 332 fichiers csv. Les noms des fichiers sont les suivants 001.csv, 002.csv, 003.csv, ............, 330.csv, 331.csv, 332.csv. Tous les fichiers ont le même nombre de variables et le même format.
J'ai besoin de lire tous les fichiers dans une même trame de données. J'ai lu chacun d'eux puis j'ai utilisé rbind, mais c'est trop lourd.
Besoin d'aide pour.
Essayez lapply et do.call
file_names <- dir() #where you have your files
your_data_frame <- do.call(rbind,lapply(file_names,read.csv))
Solution avec data.table
, la réponse est tirée d'un autre article de SO que j'ai parfois utilisé en retour.
library(data.table)
files <- list.files(path = "/etc/dump",pattern = ".csv")
temp <- lapply(files, fread, sep=",")
data <- rbindlist( temp )
Voici une solution possible. Pourrait probablement aussi être fait avec une fonction d'application.
path <- "path_to_files"
files <- c(paste("00",2:9,".csv",sep=""),
paste("0",10:99,".csv",sep=""),
paste(100:332,".csv",sep="")
)
#Read first file to create variables in a data frame
data <- read.csv(paste(path,"001.csv",sep="/"))
#Read remaining files and rbind them to dataset
for (f in files) {
data <- rbind(data,read.csv(paste(path, files, sep="/")))
}