Rでデータファイルを素早く読む
概要
Rは基本的にcsvデータを読む関数としてread.csv()
を提供しているけど、ただ便利に使っている程度ではなく、実際の分析をしているならその性能は使い物にならないほど落ちてしまう。その代替として、readrパッケージで提供されているread_csv()
の使用を強く推奨する。read_csv()
はc++で書かれており、とても速い速度でcsvファイルを読み込むことができる。
コード
以下はread.csv()
とread\_csv()
の所要時間を計測したものである:
link = "../attachment/cfile1.uf@992EC4385D6B6D21123DAE.csv"
system.time({
x<-read.csv(link,header=F)
})
library(readr)
system.time({
y<-read\_csv(link)
})
ダウンロードする時間も含めても10倍以上の速度差を確認できる。例に使われたファイル
dummy.csvはたったの1万行、容量も1.1MBしかないが、実際は80MBのオリジナルデータを減らして減らしたものである。read.csv()
が遅すぎて途中でフリーズしたのかどうか確認する方法もなかったためである。待てば最終的にはオリジナルデータも読めるかもしれないが、そのほど待つ忍耐力がなくて非常に小さく減らした。