使用R进行简单的时间序列分析:聚合和子集化

时间:2016-11-01 18:28:11

标签: r time-series zoo

我想将每月数据转换为季度平均值。这些是我的2个数据集:

gas <- UKgas
dd <- UKDriverDeaths

我能够完成(我认为)dd数据,因为:

dd.zoo <- zoo(dd)
ddq <- aggregate(dd.zoo, as.yearqtr, mean)

但是我无法弄清楚如何使用gas数据...任何帮助?

后续

当我尝试根据日期(1969-1984)对数据进行分组时,结果数据不包括1969年Q1,而是包括1985年Q1 ......有关如何解决此问题的任何建议?我只是尝试将其分组为gas[1969:1984]

1 个答案:

答案 0 :(得分:3)

最初我没有打算发布回答,因为看起来你没有预先检查你的UKgas数据集,看它是否已经是季度时间序列。

但后续问题值得回答。 “ts”对象带有许多方便的通用函数。我们可以使用window轻松地对时间序列进行子集化。为了在1969年第一季度和1984年最后一个季度之间提取部分,我们可以使用

window(UKgas, start = c(1969,1), end = c(1984,4))

结果仍然是季度时间序列。

另一方面,如果我们使用“[”进行子集化,我们会丢失对象类:

class(UKgas[1:12])
#[1] "numeric"