Aan de slagGa gratis aan de slag

Snel parsen met fasttime

Het fasttime-pakket biedt één functie, fastPOSIXct(), speciaal ontworpen om datetimes in te lezen die zijn opgemaakt volgens ISO 8601. Omdat het maar één formaat inleest en geen formaat hoeft te raden, is het echt snel!

In deze oefening zie je hoe snel, door de leestijd van de datums uit de uurlijkse weersgegevens van Auckland (meer dan 17.000 datums) te vergelijken met lubridate’s ymd_hms().

Om de runtimes te vergelijken gebruik je de functie microbenchmark() uit het gelijknamige pakket. Je geeft zoveel argumenten door als je wilt, waarbij elk argument een expressie is om te timen.

Deze oefening maakt deel uit van de cursus

Werken met datums en tijden in R

Cursus bekijken

Oefeninstructies

We hebben de datetimes uit de uurlijkse Auckland-data als strings geladen in de vector dates.

  • Bekijk de structuur van dates om te controleren dat het een string is en in ISO 8601-formaat staat.
  • Parse dates met fasttime en pipe naar str() om te controleren dat fastPOSIXct ze correct parseert.
  • Roep nu, om de timing te vergelijken, microbenchmark aan waarbij het eerste argument ymd_hms() gebruikt om dates te parsen en het tweede fastPOSIXct() gebruikt.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

library(microbenchmark)
library(fasttime)

# Examine structure of dates
str(___)

# Use fastPOSIXct() to parse dates
fastPOSIXct(___) %>% str()

# Compare speed of fastPOSIXct() to ymd_hms()
microbenchmark(
  ymd_hms = ___(dates),
  fasttime = ___(dates),
  times = 20)
Code bewerken en uitvoeren