計算所有運動的移動平均
你已經會把資料篩成只包含週末比賽了,客戶現在希望你換個角度思考。也許當在地球隊在「主場」贏得更多比賽時,波士頓的觀光業會受益。
這次不要專注於週末比賽,而是要產生一個聚焦於「在波士頓進行的比賽」的移動勝負平均。要建立這個指標,你會再次使用前面提到的 rollapply() 指令,不過這次要對所有波士頓地區的球隊計算,同時只取主場比賽來子集化。
本練習屬於課程
個案研究:在 R 中分析城市時間序列資料
練習說明
- 以
data[column == x]的格式,將sports資料子集化為只包含在波士頓進行的主場比賽(homegame = 1)。把這個新物件命名為homegames。 - 使用
rollapply()計算波士頓球隊最近 20 場主場比賽的勝負平均。你需要指定homegames的win_loss欄位,將width設為20,並將FUN參數設為mean。把這個指標存回homegames物件為win_loss_20。 - 以類似的
rollapply()呼叫計算「100 場」的移動勝負平均。把這個指標存回homegames物件為win_loss_100。 - 使用
plot.zoo()視覺化這兩個指標。請選取win_loss_20與win_loss_100兩個欄位,並將plot.type設為"single",以便在同一個面板中查看兩者。lty與lwd參數維持原樣即可。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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)