合并具有不同时间索引格式的两个时间序列
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
。假设数据在 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
我有两个时间序列,如下所示(第一个衡量消费;第二个衡量 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
。假设数据在 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