Aan de slagGa gratis aan de slag

Een maandelijks gemiddelde genereren

Hoewel het to.period()-commando in veel situaties handig is, is het voor jouw doel misschien niet ideaal om één rij te kiezen als representatief voor de hele maand.

In plaats daarvan is het logischer om gemiddelde temperatuurwaarden per maand te genereren. Hiervoor moet je handmatig het maandgemiddelde berekenen met split() en lapply(), en vervolgens een nieuw xts-object maken met as.xts(). Dit lijkt misschien een ingewikkeld proces, maar je hebt hier al de skills voor!

Het subset van het xts-object uit de vorige oefening, temps_xts_2, is vooraf geladen in je werkruimte. Ook vooraf geladen is een index-object met een vector van datums voor de eerste dag van elke maand die in de data voorkomt.

Deze oefening maakt deel uit van de cursus

Casestudy: Tijdreeksgegevens van een stad analyseren in R

Cursus bekijken

Oefeninstructies

  • Gebruik split() om maandelijkse lijsten te maken uit de mean-kolom van je temps_xts_2-object. Zorg dat je "months" opgeeft als periode (het f-argument).
  • Gebruik lapply() om de "mean of means" te berekenen, oftewel de gemiddelde mean-temperatuur per maand.
  • Gebruik as.xts() om een nieuw xts-object te maken met de gemiddelde maandelijkse temperatuur in Boston van 2010 t/m 2015. Combineer hiervoor je maandelijkse mean_of_means-gegevens met je maandelijkse index-object.
  • Controleer tot slot dat je nieuwe temps_monthly-object dezelfde duur en periodiciteit heeft als flights_xts.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Split temps_xts_2 into separate lists per month
monthly_split <- split(___$___ , f = "___")

# Use lapply to generate the monthly mean of mean temperatures
mean_of_means <- lapply(___, FUN = ___)

# Use as.xts to generate an xts object of average monthly temperature data
temps_monthly <- as.xts(as.numeric(___), order.by = ___)
 
# Compare the periodicity and duration of your new temps_monthly and flights_xts 
periodicity(___)
periodicity(___)
Code bewerken en uitvoeren