如何解决每季度强制执行相等的天数 R 'xts'
假设我有以下数据集:
标准普尔500指数的每日观察,以及 季度公共债务总额。 季度的观察是在时间
xxxx-01-01
xxxx-04-01
xxxx-07-01
xxxx-10-01
周末、节假日等非交易日用NA表示
2020-01-01 NA
2020-01-02 3257.85
2020-01-02 3234.85
.
.
.
.
2020-03-31 2584.59
这将在每个季度产生不等量的观察。 我的问题是如何删除一定数量的日期,以便在每个季度内我将有 66 次对 S&P500 的观察?
解决方法
我们可以将索引转换为 yearqtr
(来自 zoo
),使用它为前 66 个观察值创建逻辑索引
xt1[ave(seq_along(index(xt1)),as.yearqtr(index(xt1)),FUN =
seq_along) <= 66]
正如@G.Grothendieck 在评论中提到的,想法是首先删除 NA 元素
xt2 <- na.omit(xt1)
然后,计算min
每季度的最大元素数
n <- min(tapply(seq_along(index(xt1)),FUN = length))
在第一个代码块中使用它
xt2[ave(seq_along(index(xt2)),as.yearqtr(index(xt2)),FUN =
seq_along) <= n]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。