我试图在我的时间序列工作中尽可能多地使用xts,因为它似乎是建议的做事方式。但是,我收到了一个奇怪的错误。
CPI.NSA和INT是xts对象。
library(dynlm)
CPI.NSA.x <- CPI.NSA[dr1]
INT.x <- INT[dr1]
CPI.NSA.z <- as.zoo(CPI.NSA.x)
INT.z <- as.zoo(INT.x)
> dynlm(CPI.NSA.z ~ INT.z + L(CPI.NSA.z, 1))
Time series regression with "zoo" data:
Start = 1953-02-01, End = 1971-06-01
Call:
dynlm(formula = CPI.NSA.z ~ INT.z + L(CPI.NSA.z, 1))
Coefficients:
(Intercept) INT.z L(CPI.NSA.z, 1)
-0.0006795 1.0440174 -0.0869050
> dynlm(CPI.NSA.x ~ INT.x + L(CPI.NSA.x, 1))
Error in `[.xts`(a, match0(indexes, attr(a, "index")), , drop = FALSE) :
i is out of range
我的理解是,每当我有一个带动物园的功能时,我可以传递一个xts,它应该可以正常工作,但显然情况并非如此。
发生了什么事?
感谢您的帮助。
答案 0 :(得分:2)
你说
我的理解是什么时候 我有一个带动物园的功能,我 可以传递一个xts,它应该只是 工作,但显然不是这样 这里。
我想知道您是否认为zoo
和xts
相同。它们不是 - xts
以有用的方式扩展zoo
,其价格是将索引类型限制为实际时间或日期对象(而不是zoo
的任意索引)。
现在,dynlm
由Achim Zeileis撰写,他是zoo
的作者之一,因为我不明白为什么你不能将你的数据保存在xts
但是然后通过调用zoo
函数时as.zoo(foo)
(通过,例如,dynlm
)。
没有神奇的“沮丧”。但你可以手工完成。这是你在问题的第一部分做的。 OK?
答案 1 :(得分:1)
简单的答案是动物园和xts不是完全可以互换的,尽管有时它们是。
这是一个非常好的例子,说明它们不可互换。