2014-07-18 2 views
14

332 개의 csv 파일이 들어있는 폴더가 있습니다. 파일 이름은 다음과 같습니다. 001.csv, 002.csv, 003.csv, ............, 330.csv, 331.csv, 332.csv. 모든 파일에는 동일한 수의 변수와 동일한 형식이 있습니다.하나의 폴더에서 여러 개의 csv 파일을 단일 데이터 프레임으로 읽는 중 R

하나의 데이터 프레임에서 모든 파일을 읽어야합니다. 나는 각각을 읽고 나서 rbind를 사용하고있다. 그러나 이것은 너무 성가시다.

도움이 필요합니다.

+1

이 정확한 문제는 [이 같은] 다른 질문 (에 이전에 게시 http://stackoverflow.com/questions/23951541/importing-되었습니다 복수 csv 파일에서 r-by-names-of-file/23952165 # 23952165). – Jaap

답변

27

lapply 시도 여기 가능한 해결책이

file_names <- dir() #where you have your files 

your_data_frame <- do.call(rbind,lapply(file_names,read.csv)) 
0

을 do.call. apply 함수를 사용하여 수행 할 수도 있습니다.

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="/"))) 
} 
+0

즉시 도움을 주셔서 감사합니다. header = TRUE 인 다음 명령은 저에게 효과적입니다. file_names <- dir() # 파일이있는 곳 your_data_frame Madhumita

9

해결책 data.table으로 대답은 내가 나중에 때때로 사용하는 다른 게시물에서 가져옵니다. 중복 당신에게 무엇을해야하는지에서 좋은 아이디어를 줄 것이다하지만

library(data.table) 
files <- list.files(path = "/etc/dump",pattern = ".csv") 
temp <- lapply(files, fread, sep=",") 
data <- rbindlist(temp) 
+0

이것은 아주 좋습니다. – AidanGawronski

관련 문제