【问题标题】:How can i lag a ts object in R?我如何在 R 中滞后 ts 对象?
【发布时间】:2021-11-06 03:30:41
【问题描述】:

我有一个数据框,每个变量每年都有 436 次观察。

我通过命令把每个变量都变成了ts对象

ts("a", frequency=436)

现在,我想提前 1 年移动一个变量(例如,从 2010 年到 2011 年)

因此,我尝试了命令

lag("a", k=1)

但它给了我:

错误:x 必须是向量,而不是 ts 对象,你要stats::lag()吗?

你有什么建议吗?

【问题讨论】:

  • 将我的评论转为答案。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: r time-series lag


【解决方案1】:

您可能已经安装了 dplyr。它用自己不兼容的lag 破坏了 R 的lag。您可以执行以下操作之一:

  1. 正如消息中所说,使用stats::lag 而不是lag 来强制使用R 的lag
  2. 定义lag <- stats::lag,然后像往常一样使用lag。要参考 dplyr 的延迟,您可以使用 dplyr::lag
  3. 不要加载 dplyr。
  4. 加载 dplyr,但要这样做:library(dplyr, exclude = c("filter", "lag"))。如果你这样做,lag 将引用 R 的 lagdplyr::lag 将引用 dplyr 的不兼容 lag
  5. 如果您的数据是数字 ts 系列,请使用 collapse 包中的 flag - 问题中的那个将不适用于此替代方案,因为它是字符 ts 系列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 2013-08-14
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多