【问题标题】:Simple time series analysis with R: aggregating and subsetting使用 R 进行简单的时间序列分析:聚合和子集
【发布时间】:2023-03-19 21:12:01
【问题描述】:

我想将月度数据转换为季度平均值。这是我的 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]

【问题讨论】:

  • 哇我的错。因此,当我尝试根据日期(1969-1984)对数据进行子集化时,结果数据不包括 1969 Q1,而是包括 1985 Q1...关于如何解决此问题的任何建议?
  • 非常感谢!我只是想这样子集:gas['1969::1984']

标签: r time-series zoo


【解决方案1】:

最初我不打算发布答案,因为您似乎没有预先检查您的 UKgas 数据集以查看它已经是一个季度时间序列。

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-12
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2017-04-10
    • 2013-09-08
    相关资源
    最近更新 更多