全スポーツにわたって移動平均を計算する
週末の試合だけに絞り込む方法はマスターできましたので、ここからは別の切り口です。地元チームがホームでより多く勝つと、ボストンの観光業が後押しされるかもしれません。
週末の試合に注目する代わりに、今回はボストン「で」行われた試合に焦点を当て、勝敗の移動平均を作成します。この指標を作るために、先ほど使った rollapply() を再び使い、ボストン周辺のすべてのスポーツチームを対象にしつつ、ホームで行われた試合のみにサブセットしてください。
この演習はコースの一部です
ケーススタディ:Rで都市の時系列データを分析する
演習の手順
data[column == x]形式を使って、ボストンで行われた試合(homegame = 1)のみを含むようにsportsデータをサブセットし、新しいオブジェクトを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)