web-dev-qa-db-ja.com

Rのフォルダーから複数のcsvファイルを単一のデータフレームに読み込む

332個のcsvファイルを含むフォルダーがあります。ファイルの名前は、001.csv、002.csv、003.csv、............、330.csv、331.csv、332.csvです。すべてのファイルには、同じ数の変数と同じ形式があります。

1つのデータフレームですべてのファイルを読み取る必要があります。私はそれぞれを読んでからrbindを使用していますが、これは面倒です。

助けが必要。

17
Madhumita

Lapplyを試してdo.call

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

your_data_frame <- do.call(rbind,lapply(file_names,read.csv))
35
Mario Fajardo

data.tableを使用したソリューションでは、SO)の別の投稿から回答が得られます。

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

解決策は次のとおりです。また、おそらく適用機能を使用して行うことができます。

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
MBDK