与dynlm的xts问题

时间:2010-05-12 14:18:15

标签: r statistics xts zoo

我试图在我的时间序列工作中尽可能多地使用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,它应该可以正常工作,但显然情况并非如此。

发生了什么事?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

你说

  

我的理解是什么时候   我有一个带动物园的功能,我   可以传递一个xts,它应该只是   工作,但显然不是这样   这里。

我想知道您是否认为zooxts相同。它们不是 - xts以有用的方式扩展zoo,其价格是将索引类型限制为实际时间或日期对象(而不是zoo的任意索引)。

现在,dynlm由Achim Zeileis撰写,他是zoo的作者之一,因为我不明白为什么你不能将你的数据保存在xts但是然后通过调用zoo函数时as.zoo(foo)(通过,例如,dynlm)。

没有神奇的“沮丧”。但你可以手工完成。这是你在问题的第一部分做的。 OK?

答案 1 :(得分:1)

简单的答案是动物园和xts不是完全可以互换的,尽管有时它们是。

这是一个非常好的例子,说明它们不可互换。