ÎncepețiÎncepe gratuit

Calculează și reprezintă grafic o medie sezonieră

În exercițiul anterior ai folosit endpoints() și period.apply() pentru a calcula rapid media victoriilor/înfrângerilor echipei Boston Red Sox la finalul fiecărui sezon. Dar ce se întâmplă dacă ai nevoie să cunoști media cumulativă pe parcursul fiecărui sezon? Atât statisticienii, cât și fanii sportului se bazează adesea pe această medie pentru a compara o echipă cu rivalele sale.

Pentru a calcula o medie cumulativă în fiecare sezon, va trebui să revii la formula split-lapply-rbind exersată în Capitolul Trei. Mai întâi, vei împărți datele pe sezoane, apoi vei aplica o funcție de medie cumulativă coloanei win_loss din fiecare sezon, iar în final vei reuni valorile într-un obiect xts.

O funcție personalizată cummean(), care generează o sumă cumulativă și o împarte la numărul de valori incluse în sumă, a fost creată pentru tine. Datele redsox_xts, inclusiv coloana win_loss, sunt disponibile în spațiul tău de lucru.

Acest exercițiu face parte din cursul

Studiu de caz: Analiza seriilor de timp pentru un oraș în R

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește split() pentru a împărți datele redsox_xts pe sezoane (în acest caz, years). Atribuie rezultatul variabilei redsox_seasons.
  • Folosește lapply() pentru a calcula media cumulativă pentru fiecare sezon. În acest exercițiu, funcția cummean() a fost concepută să calculeze suma (folosind cumsum()) și să o împartă la numărul de intrări din sumă (folosind seq_along()). Salvează aceste date în redsox_ytd.
  • Folosește do.call() împreună cu rbind pentru a converti lista rezultată într-un singur obiect xts (redsox_winloss), care conține media victoriilor/înfrângerilor pe parcursul fiecărui sezon.
  • Folosește plot.xts() pentru a vizualiza media cumulativă a victoriilor/înfrângerilor din sezonul 2013. Lasă argumentul ylim așa cum este în codul pregătit pentru tine.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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))
Editează și rulează codul