计算收盘平均值
在探索了红袜队数据中的一些趋势后,您希望产出一些有用的指标。本练习中,您将计算球队在每个赛季末的胜负平均值。从金融领域的类比来看,这就像是在赛季"收盘"时的球队价值。
要计算赛季收盘的胜负平均值,您需要组合使用前几章介绍的一些命令。
首先,基于每场比赛的比分来标记胜场。您可以使用简单的 ifelse() 命令:当红袜队得分高于对手时记为胜。
其次,使用 endpoints() 找到每个赛季最后一场比赛的日期。该命令会在指定周期内识别对象中的最后日期。
最后,要计算每个赛季的收盘胜负平均值,只需对数据的 win_loss 列使用 period.apply(),将 close 日期作为索引,并将 mean 作为函数即可。
redsox_xts 对象已在您的工作区中可用。
本练习是课程的一部分
案例研究:在 R 中分析城市时间序列数据
练习说明
- 使用
ifelse计算win_loss:当boston_score大于opponent_score时记为1,否则为0。 - 使用
endpoints()识别每个赛季最后一场比赛的日期。由于棒球赛季包含在单一年份内,您可以将on参数设为"years",以获得每年的最后一场比赛。将这些日期保存为close。 - 使用
period.apply()计算赛季收盘时的胜负平均值。指定redsox_xts数据中的win_loss列,以close日期作为周期,并以mean作为函数。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Generate a new variable coding for red sox wins
redsox_xts$win_loss <- ifelse(redsox_xts$___ > redsox_xts$___, 1, 0)
# Identify the date of the last game each season
close <- endpoints(___, on = "___")
# Calculate average win/loss record at the end of each season
period.apply(redsox_xts[, "___"], ___, ___)