LoslegenKostenlos loslegen

Saison-Durchschnitt berechnen und plotten

In der vorherigen Übung hast du mit endpoints() und period.apply() schnell den Sieg/Niederlage-Durchschnitt der Boston Red Sox am Ende jeder Saison berechnet. Aber was, wenn du den kumulativen Durchschnitt über den Verlauf jeder Saison brauchst? Statistiker und Sportfans verlassen sich oft auf diesen Durchschnitt, um ein Team mit seinen Rivalen zu vergleichen.

Um in jeder Saison einen kumulativen Durchschnitt zu berechnen, kehrst du zur in Kapitel 3 geübten split-lapply-rbind-Formel zurück. Zuerst teilst du die Daten nach Saison auf, dann wendest du in jeder Saison eine Funktion für den kumulativen Mittelwert auf die Spalte win_loss an, und anschließend fügst du die Werte wieder zu einem xts-Objekt zusammen.

Eine benutzerdefinierte Funktion cummean(), die eine kumulative Summe bildet und durch die Anzahl der in der Summe enthaltenen Werte teilt, wurde für dich vorbereitet. Die Daten redsox_xts einschließlich der Spalte win_loss stehen in deiner Arbeitsumgebung bereit.

Diese Übung ist Teil des Kurses

Fallstudie: Zeitreihendaten von Städten in R analysieren

Kurs anzeigen

Anleitung zur Übung

  • Verwende split(), um die redsox_xts-Daten in Saisons (hier: years) aufzuteilen. Weise das Ergebnis redsox_seasons zu.
  • Verwende lapply(), um für jede Saison den kumulativen Mittelwert zu berechnen. Für diese Übung steht eine Funktion cummean() bereit, die die Summe (mit cumsum()) bildet und durch die Anzahl der Einträge in der Summe (mit seq_along()) teilt. Speichere diese Daten in redsox_ytd.
  • Verwende do.call() mit rbind, um deine Listen-Ausgabe in ein einzelnes xts-Objekt (redsox_winloss) zu konvertieren, das den Sieg/Niederlage-Durchschnitt über jede Saison hinweg enthält.
  • Verwende plot.xts(), um den kumulativen Sieg/Niederlage-Durchschnitt in der Saison 2013 anzuzeigen. Lass das Argument ylim in deinem vorgefertigten Code unverändert.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Split redsox_xts win_loss data into years 
redsox_seasons <- split(___$___, f = "___")

# Use lapply to calculate the cumulative mean for each season
redsox_ytd <- lapply(___, cummean)

# Use do.call to rbind the results
redsox_winloss <- do.call(___, ___)

# Plot the win_loss average for the 2013 season
plot.xts(___["___"], ylim = c(0, 1))
Code bearbeiten und ausführen