Lesezeiten von CSV- und RDS-Dateien vergleichen
Eine der häufigsten Aufgaben ist das Einlesen von Daten aus CSV-Dateien. Bei großen CSV-Dateien kann das jedoch langsam sein.
Ein praktischer Trick ist, die Daten einzulesen und als R-Binärdatei (rds) mit saveRDS() zu speichern.
Zum Einlesen der rds-Datei verwenden wir readRDS().
Hinweis: Da rds R's natives Format zum Speichern einzelner Objekte ist, führst du keine Drittanbieter-Abhängigkeiten ein, die sich später ändern könnten.
Um die beiden Ansätze zu benchmarken, kannst du system.time() verwenden.
Diese Funktion gibt die Zeit zurück, die zur Auswertung eines beliebigen R-Ausdrucks benötigt wird. Um beispielsweise zu messen, wie lange es dauert, die Quadratwurzel der Zahlen von eins bis zehn Millionen zu berechnen, würdest du Folgendes schreiben:
system.time(sqrt(1:1e7))
Diese Übung ist Teil des Kurses
<Kurs>Effizient R-Code schreiben</Kurs>Übungsanweisungen
Die Dateien "movies.csv" und "movies.rds" enthalten identische Data Frames mit Informationen zu 45.000 Filmen.
- Verwende die Funktion
system.time(): Wie lange dauert es, die CSV-Datei mitread.csv("movies.csv")einzulesen? - Wiederhole das für die rds-Datei
"movies.rds"mitreadRDS().
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# How long does it take to read movies from CSV?
system.time(read.csv(___))
# How long does it take to read movies from RDS?
___