xts
basiert auf zoo
, und der Zoo FAQ (Frage 4) diese Leitung über unterschiedliche Datentypen:
A "Zoo" Objekt sein kann (1) ein numerisches Vektor, (2) a numerische Matrix oder (3) ein Faktor, darf jedoch nicht sowohl einen numerischen Vektor als auch einen Faktor enthalten.
Solange Ihre 0 und 1 numeric
sind, nicht factor
, sollten Sie in Ordnung sein. Es ist kein sehr effizientes Speichermedium, aber die Speichereffizienz ist möglicherweise nicht Ihr Engpass.
Ein Beispiel:
timestamp <- seq.POSIXt(from=as.POSIXct("2016-10-12 09:00"),
to=as.POSIXct("2016-10-13 09:00"),
by="min")
dat <- rnorm(length(timestamp))
foo <- xts(dat,order.by=timestamp)
Jetzt, wo Indikatorgröße:
#make this example reproducible:
set.seed(123)
dummy2 <- sample(c("event","non-event"), size=length(timestamp),
replace=TRUE)
foo2 <- xts(dummy2, order.by=timestamp)
merged <- cbind(foo, foo2)
Und das warnt Sie:
In merge.xts(..., all = all, fill = fill, suffixes = suffixes) :
NAs introduced by coercion
Tat:
summary(merged)
Index ..1 ..2
Min. :2016-10-12 09:00:00 Min. :-3.38110 Min. : NA
1st Qu.:2016-10-12 15:00:00 1st Qu.:-0.64010 1st Qu.: NA
Median :2016-10-12 21:00:00 Median : 0.04047 Median : NA
Mean :2016-10-12 21:00:00 Mean : 0.03025 Mean :NaN
3rd Qu.:2016-10-13 03:00:00 3rd Qu.: 0.67461 3rd Qu.: NA
Max. :2016-10-13 09:00:00 Max. : 3.25034 Max. : NA
NA's :1441
Aber wenn es ein numerisches ist:
dummy3 <- sample(0:1, size=length(timestamp), replace=TRUE)
foo3 <- xts(dummy3, order.by=timestamp)
merged <- cbind(foo, foo3)
kehrt leise (und keine Nachrichten sind gute Nachrichten). Lassen Sie uns einen Blick:
summary(merged)
Index ..1 ..2
Min. :2016-10-12 09:00:00 Min. :-3.38110 Min. :0.0000
1st Qu.:2016-10-12 15:00:00 1st Qu.:-0.64010 1st Qu.:0.0000
Median :2016-10-12 21:00:00 Median : 0.04047 Median :0.0000
Mean :2016-10-12 21:00:00 Mean : 0.03025 Mean :0.4983
3rd Qu.:2016-10-13 03:00:00 3rd Qu.: 0.67461 3rd Qu.:1.0000
Max. :2016-10-13 09:00:00 Max. : 3.25034 Max. :1.0000
Da Spalte 2 numerisch ist, wir vergleichen nicht Gleichheit verwendet wird; Wenn das nicht intuitiv für Sie ist, lesen Sie Circle One der R Inferno (Achtung: PDF).
summary(merged[merged[,2] > 0.5 ,1])
summary(merged[merged[,2] < 0.5 ,1])
Es gibt wahrscheinlich eine elegantere Art, das zu tun, aber es wird Ihnen den Anfang machen.
Wenn Sie auf der Arbeit mit xts
mehr als trivialer Weise planen, empfehle ich den Rat von den Autoren von xts
:
Im Kern eines xts Objekts ist ein Zoo-Objekt aus dem Paket der gleichen Namen . ... Die meisten Details rund um Zooobjekte gelten gleichermaßen für xts.Da es überflüssig wäre, einfach den exzellenten Einführungszoo Vignette nachzuerzählen, wird dem Leser empfohlen, die Dokumentation zu lesen, zu absorbieren und erneut zu lesen, um die Leistungsfähigkeit dieser Klasse am besten zu verstehen.
Wenn Sie wollen, dass die Leute in ihrer Antwort so spezifisch wie möglich sind, würde es hilfreich sein, wenn Sie in Ihrer Frage so spezifisch wie möglich wären (zB ein [minimal reproduzierbares Beispiel] (http://stackoverflow.com)/q/5963269/271616) zeigt die Eingabe und erwartete Ausgabe). –