我有两个时间序列如下所示(第一个衡量消费;第二个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
答案 0 :(得分:2)
使用merge
中的zoo
。假设数据位于df1
和df2
,并使用了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