Gleitenden Durchschnitt über alle Sportarten berechnen
Nachdem du das Subsetting deiner Daten auf Wochenendspiele gemeistert hast, möchte dein Kunde nun einen anderen Ansatz. Vielleicht profitiert Bostons Tourismusbranche, wenn die lokalen Sportteams mehr Spiele zu Hause gewinnen.
Statt dich auf Wochenendspiele zu konzentrieren, sollst du einen gleitenden Gewinn/Verlust-Durchschnitt für Spiele in Boston erstellen. Um diesen Indikator zu erzeugen, verwendest du erneut den oben genutzten Befehl rollapply(). Diesmal wendest du deine Berechnung auf alle Sportteams im Großraum Boston an, subsettest aber so, dass nur Heimspiele enthalten sind.
Diese Übung ist Teil des Kurses
Fallstudie: Zeitreihendaten von Städten in R analysieren
Anleitung zur Übung
- Subsette deine
sports-Daten so, dass nur Spiele in Boston enthalten sind (homegame = 1), und zwar im Formatdata[column == x]. Speichere dieses neue Objekt alshomegames. - Verwende
rollapply(), um den Gewinn/Verlust-Durchschnitt der letzten 20 Heimspiele der Bostoner Teams zu berechnen. Du musst die Spaltewin_lossaus deinenhomegames-Daten angeben, diewidthauf20setzen und das ArgumentFUNaufmeansetzen. Speichere diesen Indikator in deinemhomegames-Objekt alswin_loss_20. - Verwende einen ähnlichen Aufruf von
rollapply(), um einen gleitenden Gewinn/Verlust-Durchschnitt über100Spiele zu berechnen. Speichere diesen Indikator in deinemhomegames-Objekt alswin_loss_100. - Verwende
plot.zoo(), um beide Indikatoren zu visualisieren. Wähle dabei die Spaltenwin_loss_20undwin_loss_100aus und setze das Argumentplot.typeauf"single", um beide im selben Panel anzuzeigen. Lass die Argumenteltyundlwdunverändert.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Generate a subset of sports data with only homegames
homegames <- sports[sports$___ == ___]
# Calculate the win/loss average of the last 20 home games
homegames$win_loss_20 <- rollapply(___$___, width = ___, FUN = ___)
# Calculate the win/loss average of the last 100 home games
homegames$win_loss_100 <-
# Use plot.xts to generate
plot.zoo(___[, c("___", "___")], plot.type = "___", lty = lty, lwd = lwd)