Zacznij terazZacznij za darmo

Obliczanie średniej kroczącej dla wszystkich dyscyplin sportowych

Teraz, gdy opanujesz filtrowanie danych do meczów weekendowych, klient chce, żebyś spróbował innego podejścia. Być może turystyka w Bostonie zyskuje wtedy, gdy lokalne drużyny wygrywają więcej meczów u siebie.

Zamiast skupiać się na weekendach, masz za zadanie obliczyć kroczącą średnią wygranych i przegranych – ale tylko dla meczów rozgrywanych w Bostonie. Wróć do funkcji rollapply() użytej wcześniej i zastosuj obliczenia do wszystkich bostońskich drużyn sportowych, ograniczając dane wyłącznie do meczów domowych.

To ćwiczenie jest częścią kursu

Studium przypadku: analiza danych szeregów czasowych miasta w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Przefiltruj dane sports, aby uwzględnić tylko mecze rozgrywane w Bostonie (homegame = 1), używając formatu data[column == x]. Nowy obiekt zapisz jako homegames.
  • Użyj funkcji rollapply(), aby obliczyć średnią wygranych i przegranych z ostatnich 20 meczów domowych bostońskich drużyn. Wskaż kolumnę win_loss w zbiorze homegames, ustaw width na 20 i ustaw argument FUN na mean. Zapisz ten wskaźnik w obiekcie homegames jako win_loss_20.
  • Podobnym wywołaniem rollapply() oblicz kroczącą średnią wygranych i przegranych z 100 meczów. Zapisz ten wskaźnik w obiekcie homegames jako win_loss_100.
  • Użyj funkcji plot.zoo(), aby zwizualizować oba wskaźniki. Pamiętaj, aby wybrać kolumny win_loss_20 i win_loss_100 oraz ustawić argument plot.type na "single", żeby wyświetlić je na jednym wykresie. Zostaw argumenty lty i lwd bez zmian.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod