Pregunta
Estoy intentando utilizar XTS tanto como sea posible en mi trabajo de series de tiempo, ya que parece ser la forma sugerida de hacer las cosas. Sin embargo, he recibiendo un error extraño.
CPI.NSA y INT son XTS objetos.
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
Yo tenía entendido que cada vez que tengo una función que toma zoológico, puedo pasarle un XTS y debe simplemente trabajo, pero está claro que no es el caso aquí.
¿Qué está pasando?
Gracias por la ayuda.
Solución
Usted dice
Yo tenía entendido que cada vez Tengo una función que toma zoológico, yo puede pasar que un XTS y que sólo debe trabajo, pero está claro que no es el caso aquí.
y me pregunto si usted piensa que zoo
y xts
son idénticos. No son - xts
extiende zoo
de manera útil a los precios de la limitación de los tipos de índices de objetos hora o fecha reales (en lugar de índices arbitrarias como para zoo
).
Ahora, dynlm
está escrito por Achim Zeileis que es uno de los autores de zoo
como no veo por qué no puede mantener sus datos en xts
pero luego pasar a zoo
(a través, por ejemplo, as.zoo(foo)
) al llamar al funciones dynlm
.
No hay 'abatido' magia. Pero usted puede hacerlo a mano. Que es lo que está haciendo en la primera parte de su pregunta. Ok?
Otros consejos
La respuesta simple es que zoológico y XTS no son completamente intercambiables, aunque a veces son.
Este es un muy buen ejemplo de un momento en que no son intercambiables.