合并具有不同时间索引格式的两个时间序列

Merging two time series with different time index formatting

我有两个时间序列,如下所示(第一个衡量消费;第二个衡量 GDP)。问题是时间索引的格式不同,长度也不同(都一直到现在;因此,GDP 更长)。

将它们合并为只有三列的最佳方法是什么:TIME、CON、GDP?索引也应该正确匹配,即 1965-01-01 与 1965-Q1 在同一行。

          DATE       CON
1   1965-01-01  60814.67
2   1965-04-01  61643.33
3   1965-07-01  62753.33
4   1965-10-01  63310.67
.      .          .
.      .          .
.      .          .
    2015-01-01  13908.03

        TIME     GDP
4364 1955-Q1 90872.2
4365 1955-Q2 93454.7
4366 1955-Q3 95558.2
4367 1955-Q4 94438.4
.      .          .
.      .          .
.      .          .
     2015-Q1 199872.4

使用 zoo 中的 merge。假设数据在 df1df2 中,并使用 1955 年和 1965 年的片段加上 2015 年的添加...

library(zoo)

CON<-zoo(df1$CON,as.yearqtr(as.Date(df1$DATE)))
GDP<-zoo(df2$GDP,as.yearqtr(sub("-"," ",df2$TIME)))

merge(CON,GDP)
             CON      GDP
1955 Q1       NA  90872.2
1955 Q2       NA  93454.7
1955 Q3       NA  95558.2
1955 Q4       NA  94438.4
1965 Q1 60814.67       NA
1965 Q2 61643.33       NA
1965 Q3 62753.33       NA
1965 Q4 63310.67       NA
.              .        .
.              .        .
.              .        .
2015 Q1 13908.03 199872.4