每个季度执行相同的天数R';xts&x27;

每个季度执行相同的天数R';xts&x27;,r,dataframe,time-series,xts,midasr,R,Dataframe,Time Series,Xts,Midasr,假设我有以下数据集: 标准普尔500指数的每日观测值,以及 季度公共债务总额。 对季度的观察正在进行中 xxxx-01-01 xxxx-04-01 xxxx-07-01 xxxx-10-01 周末和节假日等非交易日用NAs表示 2020-01-01 NA 2020-01-02 3257.85 2020-01-02 3234.85 . . . . 2020-03-31 2584.59 这将使每个季度的观察量不相等。 我的问题是,如何删除一定数量的日期,以便在每个季度内,我对标准普尔500指数

假设我有以下数据集:

标准普尔500指数的每日观测值,以及 季度公共债务总额。 对季度的观察正在进行中

xxxx-01-01
xxxx-04-01
xxxx-07-01
xxxx-10-01
周末和节假日等非交易日用NAs表示

2020-01-01 NA
2020-01-02 3257.85
2020-01-02 3234.85
.
.
.
.
2020-03-31 2584.59

这将使每个季度的观察量不相等。
我的问题是,如何删除一定数量的日期,以便在每个季度内,我对标准普尔500指数有66个观察值?

我们可以将该指数转换为
yearqtr
(来自
zoo
),使用该指数为前66个观察值创建逻辑指数

xt1[ave(seq_along(index(xt1)), as.yearqtr(index(xt1)), FUN = 
        seq_along) <= 66]
在第一个代码块中使用它

xt2[ave(seq_along(index(xt2)), as.yearqtr(index(xt2)), FUN = 
        seq_along) <= n]
xt2[ave(seq_-along(index(xt2)),as.yearqtr(index(xt2)),FUN=

(以下)评论不适用于长时间讨论;本次对话已结束。
n <- min(tapply(seq_along(index(xt1)), as.yearqtr(index(xt1)), FUN = length))
xt2[ave(seq_along(index(xt2)), as.yearqtr(index(xt2)), FUN = 
        seq_along) <= n]