CSV と RDS ファイルの読込時間を比較する
最もよく行う作業のひとつが、CSV ファイルからデータを読み込むことです。しかし、大きな CSV ファイルでは時間がかかることがあります。
便利な方法として、データを読み込んだら R のバイナリファイル(rds)として saveRDS() で保存しておく手があります。
保存した rds ファイルは、readRDS() で読み込みます。
注意: rds は単一オブジェクトを保存するための R のネイティブ形式なので、将来変更されるかもしれないサードパーティ依存は追加されません。
2 つの方法をベンチマークするには、system.time() を使います。
この関数は、任意の R 式を評価するのにかかった時間を返します。例えば、1 から 1,000 万までの数の平方根を計算するのに要する時間を測るには、次のように書きます。
system.time(sqrt(1:1e7))
この演習はコースの一部です
効率的なRコードの書き方
演習の手順
"movies.csv" と "movies.rds" には、いずれも 45,000 本の映画に関する同一のデータフレームが入っています。
system.time()関数を使って、read.csv("movies.csv")で CSV ファイルを読み込むのにかかる時間を測ってください。- 同様に、
readRDS()を使って rds ファイル"movies.rds"を読み込む時間も測ってください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# How long does it take to read movies from CSV?
system.time(read.csv(___))
# How long does it take to read movies from RDS?
___