開始使用免費開始

比較讀取 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?
___
編輯並執行程式碼