【问题标题】:Line up ts or zoo timeseries of different frequencies at "midperiod" on X axis在 X 轴的“中期”排列不同频率的 ts 或 zoo 时间序列
【发布时间】:2012-03-11 16:31:23
【问题描述】:

我需要在 R 中绘制多个不同频率的时间序列,并且我需要它们使点以一个周期为中心,而不是从每个周期的开头开始。这是我遇到的情况的说明:

test1 <- ts(rnorm(24), start=2004, freq=12)
test2 <- ts(rnorm(2), start=2004, freq=1)
plot(test1, type='l')
lines(test2, col='red')

我希望红线基本上向前移动 6 个月,每年到中间位置。我花了一点时间研究“ts”的 R 文档,但还没有弄清楚如何做到这一点——有什么建议吗?

【问题讨论】:

  • 两个答案都很有用; DWin 感谢您注意访问器方法!我想我已经想出了一个合理、可行的解决方案,谢谢!

标签: r time-series


【解决方案1】:

改变时间序列开始怎么样?

test2 <- ts(rnorm(2), start=2004.5, freq=1)

【讨论】:

    【解决方案2】:

    我同意@haggai_e 的观点,即改变“start”参数是有意义的,但如果您已经有一个 ts-object,那么使用这些值的代码将是:

    lines(ts(test2, start=2004.5, freq=frequency(test2)) )
    

    ts-objects 实际上只是带有属性的数字向量。您可以使用startendfrequency 恢复这些属性。 end 实际上是从添加到start 的向量的(length/frequency -1) 动态计算的。

    【讨论】:

      猜你喜欢
      • 2021-01-26
      • 2013-11-14
      • 2017-03-14
      • 2015-08-13
      • 2016-03-26
      • 2021-09-07
      • 2021-03-29
      • 2020-11-09
      • 2020-10-13
      相关资源
      最近更新 更多