我怎样才能在 R 中滞后一个 ts 对象?
How can i lag a ts object in R?
我有一个数据框,每个变量每年有 436 个观察值。
我通过命令把每个变量都做了一个ts对象
ts("a", frequency=436)
现在,我想提前 1 年移动一个变量(例如,从 2010 年到 2011 年)
因此,我尝试使用命令
lag("a", k=1)
但它给了我:
Error: x
must be a vector, not a ts object, do you want stats::lag()
?
你有什么建议吗?
您可能已经安装了 dplyr。它用自己的不兼容 lag
破坏了 R 的 lag
。您可以执行以下操作之一:
- 正如消息所说,使用
stats::lag
而不是 lag
来强制使用 R 的 lag
.
- 定义
lag <- stats::lag
然后照常使用lag
。要参考 dplyr 的滞后,您可以使用 dplyr::lag
.
- 不加载 dplyr。
- 加载 dplyr,但这样做:
library(dplyr, exclude = c("filter", "lag"))
。如果你这样做 lag
将引用 R 的 lag
而 dplyr::lag
将引用 dplyr 的不兼容 lag
.
- 如果您的数据是数字 ts 系列,请使用 collapse 包中的
flag
-- 问题中的数据将无法使用此替代方案,因为它是字符 ts 系列。
我有一个数据框,每个变量每年有 436 个观察值。
我通过命令把每个变量都做了一个ts对象
ts("a", frequency=436)
现在,我想提前 1 年移动一个变量(例如,从 2010 年到 2011 年)
因此,我尝试使用命令
lag("a", k=1)
但它给了我:
Error:
x
must be a vector, not a ts object, do you wantstats::lag()
?
你有什么建议吗?
您可能已经安装了 dplyr。它用自己的不兼容 lag
破坏了 R 的 lag
。您可以执行以下操作之一:
- 正如消息所说,使用
stats::lag
而不是lag
来强制使用 R 的lag
. - 定义
lag <- stats::lag
然后照常使用lag
。要参考 dplyr 的滞后,您可以使用dplyr::lag
. - 不加载 dplyr。
- 加载 dplyr,但这样做:
library(dplyr, exclude = c("filter", "lag"))
。如果你这样做lag
将引用 R 的lag
而dplyr::lag
将引用 dplyr 的不兼容lag
. - 如果您的数据是数字 ts 系列,请使用 collapse 包中的
flag
-- 问题中的数据将无法使用此替代方案,因为它是字符 ts 系列。