【備忘録】Rでディレクトリ配下の複数ファイルからデータをデータフレームに格納する
ディレクトリのファイルパスを指定する
例えば、カレントディレクトリの下に「data」というフォルダを作ってその中から読ませたければ、
path <- 'data/'
などとしておく
※参考にしたサイト
R:list.filesによるファイルパス取得あれこれ。 - Qiita
ディレクトリ配下のファイルの一覧を取得する
読み込ませたいファイルの一覧をリストに格納する
fl <- list.files(path,full.names=T)
※参考にしたサイト
読み込み用の関数を作る
例えば、GAのデータであれば、冒頭の6行にコメントが入っているので、それをスキップし、かつCSVファイルの文字コードがutf-8なのでそれも指定して読み込む
return (df)を忘れないように
readfiles <- function(x){ df <- read.csv(x, header=T, fileEncoding = "UTF-8", stringsAsFactors = F, skip=6) colnames(df) <- c("参照元メディア", "日付", "ページビュー数", "ユーザー") df$ユーザー <- as.numeric(sub(",","",df$ユーザー)) df$ページビュー数 <- as.numeric(sub(",","",df$ページビュー数)) df$Date <- as.Date(strptime(df$日付,"%Y%m%d")) return(df) }
※その他、Googleアナリティクスのデータはデータが数字にならずにカンマが入っていたり、日付が上手く日付データになっていなかったりのトラップがあるので、読み込み時に対応しておくのが良い。
※参考にしたサイト
関数を使ってファイルをよみこむ
for 分を使って、先程のファイルリストの長さの分だけ繰り返しを適応する。 rbindで繋げていく
df_hoge <- as.data.frame(NULL) for (i in 1:length(fl)){ df <- readfiles(fl[i]) df_hoge <- rbind(df_hoge,df) } df <- as.data.frame(NULL)
※参考にしたサイト