0

xts が提案されている方法のように思われるため、時系列の作業で可能な限り 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

Zooを取る関数があるときはいつでも、それをxtsに渡すことができ、それはうまくいくはずだと私は理解していましたが、ここでは明らかにそうではありません。

どうしたの?

助けてくれてありがとう。

4

2 に答える 2

2

あなたは言う

Zooを取る関数があるときはいつでも、それをxtsに渡すことができ、それはうまくいくはずだと私は理解していましたが、ここでは明らかにそうではありません。

zooxtsが同じだと思うかどうか疑問に思っています。それらはそうではありません --インデックスの種類を実際の時間または日付オブジェクトに制限するという代償を払って (のように任意のインデックスではなく) 便利な方法でxts拡張します。 zoozoo

現在、関数dynlmを呼び出すときにデータを保持できないのに(たとえば を介して)に渡すzooことができない理由がわかりません。xtszooas.zoo(foo)dynlm

魔法の「ダウンキャスト」はありません。しかし、あなたはそれを手で行うことができます。これは、質問の最初の部分で行っていることです。Ok?

于 2010-05-12T15:33:48.840 に答える
1

簡単な答えは、zoo と xts は完全に互換性があるわけではありませんが、互換性がある場合もあります。

これは、交換できない時代の本当に良い例です。

于 2010-05-12T15:46:32.167 に答える