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: >"

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top