[R]data.tableとdplyr

Post date: Aug 29, 2017 3:13:12 PM

行数が100万とかそれ以上の大きめのデータになって来ると読み込みやらデータの変形に時間がかかる。基本的にはSQLみたいなデータベースを使って処理した方がいいのだが、行列計算的なものや回帰分析のためのテーブル作成などはRなどでやるしかない。とりあえず今のRにはdata.tableとdplyrという2種類の高速データハンドリングパッケージがある。

直感的には確かにdata.tableの方が速そうなのだが、個人的にはreadrやtidyrなどを含むdplyrシリーズの方が扱いやすいように思う。data.tableのfreadは早いし読み込み進捗もわかるのでかっこいいのだが、結局操作の過程でfilterなんぞを使うとすぐdata.frameになっちゃうしつまづきやすい。だったら最初からdata.frameとして扱った方が自分のように前からRを使っているものには楽かなと。

とりあえず、read_csv{readr}で読み込み、SQL的なのはfilter{dplyr}やjoin{dplyr}でこなし、longからwideなどのデータの変形は、spread{tidyr}でやってしまうのが今のところベストプラクティス。