rbind.zoo scheint nicht im Einklang Zoo-Objekt erstellen
Frage
Ich möchte zusammen Objekt zwei Zoo rbind.zoo. Als ich die Prüfung stieß ich auf das folgende Problem (?) ...
Hinweis: Die unten ist ein Beispiel, da es eindeutig kein Punkt ist, abgesehen von illustrativ zu sein. Ich habe ein Zoo-Objekt, nennen Sie es, ‚X‘. Ich will es in zwei Teile brechen und dann rbind.zoo sie zusammen. Wenn ich es auf das ursprüngliche Objekt zu vergleichen, dann all.equal gibt Unterschiede.
Es scheint, dass die ‚$ class‘ Attribut unterscheidet, aber ich kann nicht sehen, wie oder warum. Ist Ich mache diese xts Objekte dann die all.equal funktioniert wie erwartet.
d. .....
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 gibt mir den folgenden Unterschied:
"Attribute:
Lösung
Ja, Sie können dort einen Fehler in Bezug auf den Umgang mit Attributen gefunden haben. Auf der anderen Seite, wer sich interessiert? c
und d
sind effektiv gleich:
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>
die Objekte Inspizieren gibt nichts weg:
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"
Ich schlage vor, Sie eine höfliche Mail den Fall an die Maintainer von zoo
senden darstellt.
Andere Tipps
R behandelt nicht die tzone Attribut POSIXct konsequent Objekte. Zoo hat damit nichts zu tun. Sie können sogar mit Beispielen wie diese kommen ohne Zoo überhaupt verwendet wird. c und d im ursprünglichen Code ist eigentlich gleich mit Ausnahme des tzone Attribut.
Wenn Sie das tzone Attribut entfernen dann c und d gleich sein:
attr(X.date, "tzone") <- NULL ##### add after defining X.date
Im Fall von Zoo, da es unterstützt fast jede Zeit Klasse, die Sie mit einer anderen Zeitklasse könnten in Erwägung ziehen, wenn Sie keine Zeitzonen brauchen. Zeitzonen nur komplizieren Dinge für keinen guten Grund, wenn Sie sie nicht brauchen. Im Beispiel könnten wir gebraucht Date-Klasse haben, zum Beispiel.
Read R Nachrichten 4/1 für mehr.