Začněte nyníZačněte zdarma

Výpočet a vizualizace sezónního průměru

V předchozím cvičení jsi pomocí endpoints() a period.apply() rychle vypočítal/a průměr výher a proher Boston Red Sox na konci každé sezóny. Co kdybys ale potřeboval/a znát kumulativní průměr v průběhu každé sezóny? Statistici i fanoušci sportu se na tento průměr často spoléhají, když porovnávají výkon týmu s jeho rivaly.

Pro výpočet kumulativního průměru v každé sezóně se vrátíme ke vzoru split-lapply-rbind, který jsme procvičovali ve třetí kapitole. Nejprve rozdělíš data podle sezóny, pak na sloupec win_loss v každé sezóně aplikuješ funkci kumulativního průměru a nakonec hodnoty spojíš zpět do objektu xts.

Vlastní funkce cummean(), která vypočítá kumulativní součet a vydělí ho počtem zahrnutých hodnot, je už připravená. Data redsox_xts včetně sloupce win_loss máš k dispozici ve svém prostředí.

Toto cvičení je součástí kurzu

Případová studie: Analýza časových řad městských dat v R

Zobrazit kurz

Pokyny k cvičení

  • Pomocí split() rozděl data redsox_xts podle sezón (v tomto případě podle years). Výsledek ulož do redsox_seasons.
  • Pomocí lapply() vypočítej kumulativní průměr pro každou sezónu. Pro toto cvičení je připravená funkce cummean(), která vypočítá součet (pomocí cumsum()) a vydělí ho počtem prvků v součtu (pomocí seq_along()). Data ulož do redsox_ytd.
  • Pomocí do.call() s argumentem rbind převeď výstup ve formě listu na jeden objekt xts (redsox_winloss), který obsahuje průměr výher a proher v průběhu každé sezóny.
  • Pomocí plot.xts() zobraz kumulativní průměr výher a proher během sezóny 2013. Argument ylim ponech tak, jak je ve předvyplněném kódu.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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))
Upravit a spustit kód