Wyodrębnianie składowych do filtrowania i podsumowań
Wyodrębnianie składowych dat przydaje się też do filtrowania obserwacji i tworzenia podsumowań. Na przykład, jeśli interesują cię tylko obserwacje z dni roboczych (czyli z wyłączeniem weekendów), możesz wyodrębnić dzień tygodnia i odfiltrować weekendy, np. wday(date) %in% 2:6.
W poprzednim ćwiczeniu widziałeś, że styczeń, luty i marzec to świetne miesiące na ciepłe dni w Auckland – ale czy trzeba będzie zabrać ze sobą płaszcz przeciwdeszczowy?
W tym ćwiczeniu się o tym przekonasz! Skorzystasz z danych godzinowych, żeby sprawdzić, ile dni w każdym miesiącu padało deszcz w ciągu dnia.
To ćwiczenie jest częścią kursu
Praca z datami i czasem w R
Instrukcje do ćwiczenia
- Utwórz nowe kolumny z godziną i miesiącem obserwacji na podstawie kolumny
datetime. Pamiętaj, żeby nadać etykietę miesiącowi. - Przefiltruj dane tak, żeby zostały tylko obserwacje z godzin dziennych – gdzie godzina jest większa lub równa
8i mniejsza lub równa22. - Zgrupuj obserwacje najpierw według
month, a następnie wedługdate, i utwórz podsumowanie, używając funkcjiany()na kolumnierainy. W efekcie otrzymasz jedną wartość na dzień. - Utwórz kolejne podsumowanie, sumując kolumnę
any_rain. W efekcie otrzymasz jedną wartość na miesiąc.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Create new columns hour, month and rainy
akl_hourly <- akl_hourly %>%
mutate(
___ = ___(datetime),
___ = ___(datetime, ___),
rainy = weather == "Precipitation"
)
# Filter for hours between 8am and 10pm (inclusive)
akl_day <- akl_hourly %>%
filter(___, ___)
# Summarise for each date if there is any rain
rainy_days <- akl_day %>%
group_by(___, ___) %>%
summarise(
any_rain = ___(rainy)
)
# Summarise for each month, the number of days with rain
rainy_days %>%
summarise(
days_rainy = ___(any_rain)
)