rbind.zooは、一貫性のある動物園のオブジェクトを作成していないようです
質問
私は2つの動物園のオブジェクトをrbind.zooたいです。私がテストしていたとき、私は次の問題に出くわした(?)...
注:以下の例であり、離れて例示されてからそれへの点が明らかに存在しません。 私は「X」、動物園のオブジェクトを持って、それを呼び出します。私は2つの部分にそれを破ると、その後それらを一緒にrbind.zooたいです。私は元のオブジェクトにそれを比較すると、その後all.equalは違いを与えます。
'$クラスの属性が異なることが表示されますが、どのようにか、なぜ私が見ることができません。予想通り、私は、これらのXTSオブジェクトall.equal作品を作るされています。
すなわち。 .....
X.date <- as.POSIXct(paste("2003-", rep(1:4, 4:1),
"-", sample(1:28, 10, replace = TRUE), sep = ""))
X <- zoo(matrix(rnorm(24), ncol = 2), X.date)
a <- X[c(1:3), ] # first 3 elements
b <- X[c(4:6), ] # second 3 elements
c <- rbind.zoo(a, b) # rbind into an object of 6 elements
d <- X[c(1:6), ] # all 6 elements
all.equal(c, d) # are they equal?
~~~~
all.equalは私に、以下の相違点を与えます:
"属性:<コンポーネント3:属性:<長さの不一致:第1成分に比較>>"
解決
はい、あなたは属性の取り扱いの面でそこにバグを発見したことがあります。一方、誰が気に? c
とd
を効果的に等しい
R> c - d
2003-01-07 0 0
2003-01-15 0 0
2003-01-17 0 0
2003-01-18 0 0
2003-02-17 0 0
2003-02-22 0 0
R>
オブジェクトを検査することは離れて何も与えない。
R> str(c)
‘zoo’ series from 2003-01-07 to 2003-02-22
Data: num [1:6, 1:2] 0.79 -0.731 1.574 -0.694 0.358 ...
Index: POSIXct[1:6], format: "2003-01-07" "2003-01-15"
"2003-01-17" "2003-01-18" "2003-02-17" "2003-02-22"
R> str(d)
‘zoo’ series from 2003-01-07 to 2003-02-22
Data: num [1:6, 1:2] 0.79 -0.731 1.574 -0.694 0.358 ...
Index: POSIXct[1:6], format: "2003-01-07" "2003-01-15"
"2003-01-17" "2003-01-18" "2003-02-17" "2003-02-22"
私はあなたのケースを例示zoo
のメンテナに丁寧なメールを送っ示唆ます。
他のヒント
Rは、一貫しPOSIXctオブジェクトのTZONE属性を扱いません。動物園はこれとは何の関係もありません。あなたも、すべての動物園を使用せずに、このような例を思い付くことができます。元のコードでCおよびDは、実際TZONE属性を除いて同一である。
あなたはTZONE属性を削除する場合はその後、c、dは等しくなります:
attr(X.date, "tzone") <- NULL ##### add after defining X.date
動物園の場合、それはちょうどあなたがタイムゾーンを必要としない場合は、別の時のクラスを使用して検討することもでき、いつでもクラスについてサポートしているため。あなたがそれらを必要としない場合はタイムゾーンはただ正当な理由なく、物事を複雑にしています。ここでの例では、たとえば、Dateクラスを使用することもできます。
の詳細について読むRニュース4/1ます。