Быстрый разбор с fasttime
Пакет fasttime предоставляет единственную функцию fastPOSIXct(), предназначенную для чтения дат и времени в формате ISO 8601. Поскольку она работает только с одним форматом и не тратит время на его определение, она работает очень быстро!
В этом упражнении вы убедитесь в этом сами: сравните скорость чтения дат из почасовых данных о погоде в Окленде (более 17 000 значений) с помощью fastPOSIXct() и функции ymd_hms() из пакета lubridate.
Для сравнения времени выполнения используйте функцию microbenchmark() из одноимённого пакета. Передайте в неё столько аргументов, сколько нужно — каждый из них представляет выражение, время выполнения которого требуется измерить.
Это упражнение является частью курса
Работа с датами и временем в R
Инструкции к упражнению
Даты и время из почасовых данных по Окленду уже загружены в виде строк в вектор dates.
- Изучите структуру
dates, чтобы убедиться, что это строковый вектор в формате ISO 8601. - Разберите
datesс помощьюfasttimeи передайте результат вstr()черезpipe, чтобы проверить корректность работыfastPOSIXct. - Теперь сравните время выполнения: вызовите
microbenchmark, передав первым аргументом разборdatesчерезymd_hms(), а вторым — черезfastPOSIXct().
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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)