Rで複数のcsvファイルからデータをまとめて読み込む
このところ暑い日が続いてますが,本気で20度くらい気温下がってほしいですよね.
普段の業務で表形式のデータの集計なんかしている方でしたら, csvを複数一気に読み込まないといけないなんていう状況があると思います.
今日はそんな場面で使えるRコードをご紹介します.
#'@param filePaths 読み込むCSVファイルのパスのリスト #'@param reader csvファイルからデータを読む関数 mergeCSV <- function(filePaths, reader) { csv_list <- lapply(filePaths, reader) return(Reduce(function(x, y) rbind(x, y), csv_list)) } #csvフォルダ下のfrutes_1.csv, frutes_2.csv, frutes_3.csvを読み込む filePaths <- paste(rep('./csv/fruits_', 3), c(1:3), rep('.csv', 3), sep='') data <- mergeCSV(filePaths,read.csv) View(data)
一応コメントしておきますと,csvから読み込んだ複数のデータをReduce関数を利用して 1つにまとめればよいという感じですね.他のReduceの使用例は例えば次のようなものです.
#Reduceの例, 1~100までの整数の和 list <- 1:100 #Reduce(function(current, result), list)で,listの先頭から2つずつfunctionにより評価を行う. list.sum <- Reduce(function(current, result) current + result, list) #5050