开始使用免费开始使用

计算所有运动项目的滚动平均值

既然您已经掌握了仅包含周末比赛的数据子集,客户希望您换个思路。也许当本地球队在"主场"赢得更多比赛时,波士顿的旅游业会受益。

这一次,不再聚焦周末比赛。您的任务是生成一个围绕"在波士顿进行的比赛"的滚动胜负平均值。为构建该指标,您将回到上面用过的 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_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)
编辑并运行代码