Zacznij terazZacznij za darmo

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

Zobacz kurs

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 8 i mniejsza lub równa 22.
  • Zgrupuj obserwacje najpierw według month, a następnie według date, i utwórz podsumowanie, używając funkcji any() na kolumnie rainy. 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)
  )
Edytuj i uruchom kod