按周聚合,并以周三为周末
在本练习中,您将学习一种通用的聚合技巧:把日度数据聚合为周度数据,但周以周三为结束日。这在股票市场研究中很常见,用于避免周内季节性影响。
period.apply() 函数接收一个 xts 对象、时间段的端点,以及一个聚合函数。然后它会对每个端点之间的数据分组应用该函数。
endpoints() 函数可以为 period.apply() 计算时间段的端点,您也可以使用自定义端点。不过,您的自定义端点向量必须以 0 开头,并以您计划聚合的观测总数结尾,这与 endpoints() 的输出一致。
您将使用 .indexwday() 找到每周的周三。它返回 0-6 之间的数字,其中 Sunday=0。
本练习将使用前面练习中的每日联邦基金利率数据(DFF)。
本练习是课程的一部分
在 R 中导入与管理金融数据
练习说明
- 使用
.indexwday()从DFF的索引中获取星期几,并将结果赋给index_weekdays。 - 使用
which()函数在index_weekdays中找到周三的位置。将结果保存到wednesdays。 - 补全命令,使
end_points以 0 开头,并以总行数结尾,像endpoints()的输出一样。 - 使用
period.apply()和end_points将DFF聚合为每周平均值。将结果赋给weekly_mean。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Extract index weekdays (Sunday = 0)
# Find locations of Wednesdays
wednesdays <- ___(index_weekdays == 3)
# Create custom end points
end_points <- c(___, wednesdays, ___)
# Calculate weekly mean using custom end points