read - Leyendo múltiples archivos csv de una carpeta en un único marco de datos en R
write.csv r (3)
Esta pregunta ya tiene una respuesta aquí:
Tengo una carpeta que contiene 332 archivos csv. El nombre de los archivos es el siguiente: 001.csv, 002.csv, 003.csv, ............, 330.csv, 331.csv, 332.csv. Todos los archivos tienen el mismo número de variables y el mismo formato.
Necesito leer todos los archivos en un marco de datos. He estado leyendo cada uno y luego usando rbind, pero esto es demasiado engorroso.
Necesitas ayuda.
Aquí hay una posible solución. Probablemente también podría hacerse con una función de aplicación.
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="/")))
}
Solución con data.table
, la respuesta se toma de otra publicación en SO que utilicé algunas veces.
library(data.table)
files <- list.files(path = "/etc/dump",pattern = ".csv")
temp <- lapply(files, fread, sep=",")
data <- rbindlist( temp )
Trate de lapply y do.call
file_names <- dir() #where you have your files
your_data_frame <- do.call(rbind,lapply(file_names,read.csv))