Aan de slagGa gratis aan de slag

Onderdelen extraheren om te filteren en te samenvatten

Een andere reden om onderdelen te extraheren is om te helpen bij het filteren van observaties of het maken van samenvattingen. Als je bijvoorbeeld alleen geïnteresseerd bent in observaties op doordeweekse dagen (dus niet in het weekend), kun je de weekdagen extraheren en vervolgens het weekend wegfilteren, bijvoorbeeld met wday(date) %in% 2:6.

In de vorige oefening zag je dat januari, februari en maart goede maanden zijn om Auckland te bezoeken voor warme temperaturen, maar heb je een regenjas nodig?

In deze oefening kom je daar achter! Je gebruikt de uurlijkse data om te berekenen op hoeveel dagen in elke maand er overdag regen viel.

Deze oefening maakt deel uit van de cursus

Werken met datums en tijden in R

Cursus bekijken

Oefeninstructies

  • Maak nieuwe kolommen voor het uur en de maand van de observatie uit datetime. Zorg dat je de maand labelt.
  • Filter naar alleen dagobservaties, waar het uur groter dan of gelijk aan 8 en kleiner dan of gelijk aan 22 is.
  • Groepeer de observaties eerst op month, daarna op date, en vat samen met any() op de kolom rainy. Dit levert één waarde per dag op
  • Vat opnieuw samen door any_rain op te tellen. Dit levert één waarde per maand op

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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)
  )
Code bewerken en uitvoeren