Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Filtrera din sports-data så att den endast innehåller matcher spelade i Boston (homegame = 1) med formatet data[column == x]. Spara det nya objektet som homegames.
  • Använd rollapply() för att beräkna vinst/förlust-genomsnittet för de senaste 20 hemmamatcherna för Bostons sportlag. Ange kolumnen win_loss i din homegames-data, sätt width till 20 och FUN-argumentet till mean. Spara indikatorn i ditt homegames-objekt som win_loss_20.
  • Använd ett liknande anrop till rollapply() för att beräkna ett rullande vinst/förlust-genomsnitt för 100 matcher. Spara indikatorn i ditt homegames-objekt som win_loss_100.
  • Använd plot.zoo() för att visualisera båda indikatorerna. Se till att välja kolumnerna win_loss_20 och win_loss_100 och sätt plot.type-argumentet till "single" för att visa båda i samma panel. Lämna argumenten lty och lwd som 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)
Redigera och kör kod