Szybkie parsowanie z fasttime
Pakiet fasttime udostępnia jedną funkcję – fastPOSIXct() – zaprojektowaną do wczytywania dat i godzin zapisanych w formacie ISO 8601. Ponieważ obsługuje tylko jeden format i nie musi go zgadywać, działa naprawdę szybko!
W tym ćwiczeniu przekonasz się, jak szybko – porównując czas wczytywania dat z godzinowych danych pogodowych Auckland (ponad 17 000 dat) między fastPOSIXct() a funkcją ymd_hms() z pakietu lubridate.
Do porównania czasów wykonania użyjesz funkcji microbenchmark() z pakietu o tej samej nazwie. Przekazujesz do niej dowolną liczbę argumentów – każdy z nich to wyrażenie, którego czas chcesz zmierzyć.
To ćwiczenie jest częścią kursu
Praca z datami i czasem w R
Instrukcje do ćwiczenia
Wczytaliśmy daty i godziny z danych Auckland jako ciągi znaków do wektora dates.
- Zbadaj strukturę
dates, aby sprawdzić, czy jest to ciąg znaków w formacie ISO 8601. - Sparsuj
datesza pomocąfasttimei przekaż wynik potokiem dostr(), aby zweryfikować, czyfastPOSIXctparsuje je poprawnie. - Aby porównać czasy wykonania, wywołaj
microbenchmark, gdzie pierwszy argument używaymd_hms()do parsowaniadates, a drugi –fastPOSIXct().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)