始める無料で始める

全スポーツにわたって移動平均を計算する

週末の試合だけに絞り込む方法はマスターできましたので、ここからは別の切り口です。地元チームがホームでより多く勝つと、ボストンの観光業が後押しされるかもしれません。

週末の試合に注目する代わりに、今回はボストン「で」行われた試合に焦点を当て、勝敗の移動平均を作成します。この指標を作るために、先ほど使った rollapply() を再び使い、ボストン周辺のすべてのスポーツチームを対象にしつつ、ホームで行われた試合のみにサブセットしてください。

この演習はコースの一部です

ケーススタディ:Rで都市の時系列データを分析する

コースを見る

演習の手順

  • data[column == x] 形式を使って、ボストンで行われた試合(homegame = 1)のみを含むように sports データをサブセットし、新しいオブジェクトを homegames として保存します。
  • rollapply() を使って、ボストンの各スポーツチームにおける直近20件のホームゲームの勝敗平均を計算します。homegames データの win_loss 列を指定し、width20FUN 引数を mean に設定します。この指標を homegames オブジェクト内の win_loss_20 として保存します。
  • 同様に rollapply() を呼び出して、100 試合の移動勝敗平均を計算します。この指標を homegames オブジェクト内の win_loss_100 として保存します。
  • plot.zoo() を使って両方の指標を可視化します。win_loss_20win_loss_100 の列を選び、同じパネルに表示できるように plot.type 引数を "single" に設定してください。ltylwd の引数はそのままにします。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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)
コードを編集して実行