在R中如何将时间序列数据的起始日期指定为2014年Q2?
正确定义起始于2014年Q2的季度时间序列
问题背景
你有一份季度时间序列数据,2014年仅包含Q2-Q4的数据,其余年份为完整4个季度。使用ts(..., start=2014, frequency=4)时出现季度错位,导致2014年Q1被错误填充了Q2的数据。
原始数据:
> EquifaxData DATE EQFXSUBPRIME013045 1 2014-04-01 42.58513 2 2014-07-01 43.15483 3 2014-10-01 43.55090 4 2015-01-01 42.59218 5 2015-04-01 41.47105 6 2015-07-01 41.53640 7 2015-10-01 41.82020 8 2016-01-01 40.98760 9 2016-04-01 40.51305 10 2016-07-01 39.91170 11 2016-10-01 40.15402
已执行日期转换:
EquifaxData$DATE <- as.Date(EquifaxData$DATE)
错误代码及结果:
> EquifaxTs <- ts(EquifaxData$EQFXSUBPRIME013045, start=2014, frequency = 4) > head(EquifaxTs) Qtr1 Qtr2 Qtr3 Qtr4 2014 42.58513 43.15483 43.55090 42.59218 2015 41.47105 41.53640
解决方法
在ts()函数中,start参数可以传入长度为2的向量,格式为c(年份, 周期序号)。对于季度数据(frequency=4),Q1对应1,Q2对应2,以此类推。
使用以下代码即可正确指定起始于2014年Q2:
EquifaxTs <- ts(EquifaxData$EQFXSUBPRIME013045, start = c(2014, 2), frequency = 4)
验证结果:
> head(EquifaxTs) Qtr2 Qtr3 Qtr4 Qtr1 2014 42.58513 43.15483 43.55090 2015 41.47105 41.53640 41.82020 42.59218 2016 40.51305 39.91170 40.15402 40.98760
这样数据就会对应正确的季度:2014年Q2-Q4的数据依次排列,2015年及之后的季度也会准确匹配。
内容的提问来源于stack exchange,提问作者Tendekai Muchenje
相关产品推荐
相关产品推荐

