【问题标题】:Merging two time series with different time index formatting合并具有不同时间索引格式的两个时间序列
【发布时间】:2015-08-28 18:24:34
【问题描述】:

我有两个时间序列,如下所示(第一个衡量消费;第二个衡量 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

【问题讨论】:

  • 日期列的可能值是多少?是否可以包含任何日期或仅包含季度的第一天?
  • 试试这个问题来重新格式化DATE列:stackoverflow.com/questions/21571703/…
  • @Micahel,日期的最后四位数字全年都相同,每一位代表一个季度。 Q1 = 01-01; Q2 = 04-01 依此类推...唯一改变的是年份...
  • 也许您没有意识到示例中的日期来自不同的年代?
  • @A.韦伯,数据有不同的长度。我对示例进行了编辑,以明确该系列将持续到 2015 年。

标签: r time-series


【解决方案1】:

使用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)
国内生产总值 1955 年第一季度不适用 90872.2 1955 年第二季度不适用 93454.7 1955 年第三季度不适用 95558.2 1955 年第四季度不适用 94438.4 1965 年第一季度 60814.67 不适用 1965 年第二季度 61643.33 不适用 1965 年第三季度 62753.33 不适用 1965 年第四季度 63310.67 不适用 . . . . . . . . . 2015年第一季度 13908.03 199872.4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 2015-01-20
    • 2021-01-09
    • 2018-01-22
    • 1970-01-01
    • 2018-07-03
    • 2018-02-20
    相关资源
    最近更新 更多