2016-10-16 5 views
0

Ich habe eine XTS-Zeitreihe Objekt von Minute für Minute Intraday-Trading-Daten für 2015. Ich möchte eine Dummy-Variable hinzufügen, die 1 als Ereignistag oder 0 als ein neuer Tag.R: Hinzufügen einer Dummy-Variable Spalte zu XTS-Zeitseries Objekt

Da die Dummy-Variable nicht inhärent eine Zeitreihe ist, ist es mir möglich, dies zu meinen Handelsdaten hinzuzufügen?

Wie soll ich die Dummy-Spalte konstruieren?

Wie kann es zu den bestehenden XTS hinzugefügt werden?

Neu bei R, bitte seien Sie so genau wie möglich in Ihrer Antwort. Vielen Dank!

+2

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). –

Antwort

2

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.

Verwandte Themen