Вопрос
Я пытаюсь максимально использовать 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, и она должна просто работать, но ясно, что это не так.
В чем дело?
Спасибо за помощь.
Решение
Ты говоришь
Это было мое понимание того, что всякий раз, когда у меня есть функция, которая берет зоопарку, я могу пройти его XTS, и она должна просто работать, но ясно, что это не так.
и мне интересно, если вы думаете, что zoo
а также xts
идентичны. Они не -- xts
расширяться zoo
Полезные способы по ценам ограничения типов индекса к фактическим объектам времени или даты (а не произвольные показатели как для zoo
).
Сейчас, dynlm
написано Ахимом Зеилейсом, который является одним из авторов zoo
Как я не понимаю, почему вы не можете сохранить ваши данные в xts
Но потом пройти к zoo
(Виа, например, as.zoo(foo)
) при звонке dynlm
Функции.
Нет волшебного «удваивания». Но вы можете сделать это вручную. Что вы делаете в первой части вашего вопроса. Ok?
Другие советы
Простой ответ - это то зоопарк и XTS не полностью взаимозаменяемы, хотя иногда они есть.
Это действительно хороший пример времени, когда они не взаимозаменяемы.