比較讀取 CSV 與 RDS 檔的時間
我們最常做的工作之一就是從 CSV 檔讀入資料。不過,當 CSV 檔很大時,這可能會很慢。
一個實用的小技巧是先把資料讀進來,然後用 R 的二進位格式(rds)儲存,方法是使用 saveRDS()。
要讀取 rds 檔,我們使用 readRDS()。
注意:由於 rds 是 R 用來儲存單一物件的原生格式,你不會引入任何未來可能變動的第三方相依性。
為了比較兩種作法的效能,你可以使用 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 檔需要多少時間。 - 對
"movies.rds"檔重複一次,改用readRDS()。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# How long does it take to read movies from CSV?
system.time(read.csv(___))
# How long does it take to read movies from RDS?
___