计算所有运动项目的滚动平均值
既然您已经掌握了仅包含周末比赛的数据子集,客户希望您换个思路。也许当本地球队在"主场"赢得更多比赛时,波士顿的旅游业会受益。
这一次,不再聚焦周末比赛。您的任务是生成一个围绕"在波士顿进行的比赛"的滚动胜负平均值。为构建该指标,您将回到上面用过的 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)