Beräkna ett rullande medelvärde för alla sporter
Nu när du behärskar urval av data för enbart helgmatcher vill din klient att du provar ett annat angreppssätt. Kanske får Bostons turistindustri ett lyft när lokala sportlag vinner fler matcher hemma.
I stället för att fokusera på helgmatcher får du nu i uppdrag att skapa ett rullande genomsnitt av vinster och förluster för matcher spelade i Boston. Du återgår till kommandot rollapply() som användes ovan, men den här gången applicerar du beräkningen på alla Bostons sportlag och filtrerar så att enbart hemmamatcher ingår.
Den här övningen är en del av kursen
Fallstudie: Analys av tidsseridata för städer i R
Övningsinstruktioner
- Filtrera din
sports-data så att den endast innehåller matcher spelade i Boston (homegame = 1) med formatetdata[column == x]. Spara det nya objektet somhomegames. - Använd
rollapply()för att beräkna vinst/förlust-genomsnittet för de senaste 20 hemmamatcherna för Bostons sportlag. Ange kolumnenwin_lossi dinhomegames-data, sättwidthtill20ochFUN-argumentet tillmean. Spara indikatorn i ditthomegames-objekt somwin_loss_20. - Använd ett liknande anrop till
rollapply()för att beräkna ett rullande vinst/förlust-genomsnitt för100matcher. Spara indikatorn i ditthomegames-objekt somwin_loss_100. - Använd
plot.zoo()för att visualisera båda indikatorerna. Se till att välja kolumnernawin_loss_20ochwin_loss_100och sättplot.type-argumentet till"single"för att visa båda i samma panel. Lämna argumentenltyochlwdsom de är.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)