rbind_allめちゃ速い
(rbind_allはdeprecatedとなっており、代わりに現在はbind_rowsが推奨されています)
データフレームを縦に結合していく時、皆さんdo.call("rbind", list(data1, data2, data3))みたいなことやっていると思います。
しかしdplyrにC++で書き直されたrbind_allというのがあるのでそちらを使うとめちゃ速くなります。
enjoy!
追記
data.tableに適用する時はdata.table::rbindlistを使えとのことです。
https://github.com/hadley/dplyr/issues/240
追記2
コメント欄に情報いただきました。(musimasamiさんありがとうございます)
factorが入っているとうまくいかないこともあるそうなのでcharacterに変換しておくと良いとのことです。
library(dplyr) # 400万行のサンプルデータ作成 types <- c("A", "B", "C", "D", "E", "F") obs <- 4e+06 dat <- data.frame(type = as.factor(sample(types, obs, replace = TRUE)), value = round(runif(obs, min = 0, max = 1), digits = 2) ) system.time(res1 <- do.call("rbind", list(dat, dat, dat, dat))) # ユーザ システム 経過 # 3.18 0.63 3.80 # dplyrのrbind_all system.time(res2 <- rbind_all(list(dat, dat, dat, dat))) # ユーザ システム 経過 # 0.50 0.04 0.55