【发布时间】:2020-08-02 03:07:56
【问题描述】:
我对 xts lag() 函数有些困惑。无论我为 k 分配什么值,我都会得到相同的 1 位滞后。
使用来自https://www.rdocumentation.org/packages/xts/versions/0.12-0/topics/diff.xts的示例:
(x <- xts(1:10, Sys.Date()+1:10))
(x1 = lag(x))
(x2 = lag(x, k=2))
(lag(x, k=-1, na.pad=FALSE))
[,1]
2020-04-20 1
2020-04-21 2
2020-04-22 3
2020-04-23 4
2020-04-24 5
2020-04-25 6
2020-04-26 7
2020-04-27 8
2020-04-28 9
2020-04-29 10
[,1]
2020-04-20 NA
2020-04-21 1
2020-04-22 2
2020-04-23 3
2020-04-24 4
2020-04-25 5
2020-04-26 6
2020-04-27 7
2020-04-28 8
2020-04-29 9
[,1]
2020-04-20 NA
2020-04-21 1
2020-04-22 2
2020-04-23 3
2020-04-24 4
2020-04-25 5
2020-04-26 6
2020-04-27 7
2020-04-28 8
2020-04-29 9
[,1]
2020-04-20 NA
2020-04-21 1
2020-04-22 2
2020-04-23 3
2020-04-24 4
2020-04-25 5
2020-04-26 6
2020-04-27 7
2020-04-28 8
2020-04-29 9
我在这里可能无法理解什么?
【问题讨论】:
-
再次检查。当我运行代码时,x2 的移位为 2。-1 是一种特殊情况,请使用
?lag.xts检查文档 -
Hmmm... ?lag.xts 给出了预期的结果,但 ?lag 给出了完全不同的头部移位 {data.table}。将函数调用更改为 lag.xts(...) 会使它们按预期工作。所以,我假设 xts lag 函数被其他东西覆盖了。我怎样才能从哪个包中找出我认为是在包中调用函数的正确语法的 xps::lag(...) 被拒绝且没有名为 xps 的包?
-
请在下面阅读我的回答。如果您真的使您的问题可重现,即包括所有
library电话,您可能已经自己找到了解决方案;) -
@jay.sf 确实,但我责怪我缺乏基础知识,而不是 R 允许默默地覆盖对象。不过感谢您的回答!