2016-08-04 44 views
0

Wie kann man angeben, welche Spalten OHLCV bei der Aggregation von Perioden in xts darstellen? Außerdem verliert es eine Spalte aus meinen ursprünglichen Daten ("Fenster").Wie spezifiziert man OHLCV-Spaltennamen in xts :: to.period?

Vielleicht gibt es eine Methode, die eigene Aggregationsfunktion an to.period zu liefern - wird hilfreiche Zeiger zu schätzen wissen.

> head(to.period(spy,period="minutes",k=5, indexAt="startof"),5) 
        spy.Open spy.High spy.Low spy.Close spy.Volume 
2016-05-19 06:30:00  60 204.20 204.09 204.02  537530 
2016-05-19 06:35:00  60 204.32 204.16 204.23  482436 
2016-05-19 06:40:00  60 204.50 204.38 204.39  441800 
2016-05-19 06:45:00  60 204.53 204.31 204.20  579161 
2016-05-19 06:50:00  60 204.20 203.86 203.72  849998 

> head(spy,10) 
        window open high  low close volume 
2016-05-19 06:30:00  60 204.030 204.09 203.900 203.91 144840 
2016-05-19 06:31:00  60 203.900 204.20 203.900 204.20 94846 
2016-05-19 06:32:00  60 204.200 204.23 204.110 204.19 68895 
2016-05-19 06:33:00  60 204.180 204.30 204.160 204.18 110701 
2016-05-19 06:34:00  60 204.160 204.16 204.020 204.10 118248 
2016-05-19 06:35:00  60 204.100 204.16 204.010 204.06 78303 
2016-05-19 06:36:00  60 204.060 204.20 204.040 204.19 67314 
2016-05-19 06:37:00  60 204.200 204.33 204.140 204.33 147779 
2016-05-19 06:38:00  60 204.320 204.33 204.130 204.27 109549 
2016-05-19 06:39:00  60 204.270 204.34 204.230 204.24 79491 
+0

'to.period' erwartet ein univariates oder OHLC-Typ Zeitreihenobjekt. Sie müssen die Spalte "Fenster" entfernen, bevor Sie diese Funktion anwenden. – hvollmeier

Antwort

2

Funktionen OHLCV und/oder OHLC von Paket quantmod kann Ihnen dabei helfen, schnell die richtigen Spalten auswählen:

library(quantmod) 
getSymbols("SPY") 
# Something like your data: 
SPY <- cbind(window = 60, SPY) 

# Now correctly select the OHLCV columns: 
SPY <- to.period(OHLCV(SPY), period = "months") 

tail(SPY) 
# OHLCV(SPY).Open OHLCV(SPY).High OHLCV(SPY).Low OHLCV(SPY).Close OHLCV(SPY).Volume 
# 2016-03-31   195.01   206.87   194.45   205.52  2323306500 
# 2016-04-29   204.35   210.92   203.09   206.33  1910635600 
# 2016-05-31   206.92   210.69   202.78   209.84  1831962200 
# 2016-06-30   209.12   212.52   198.65   209.48  2612406900 
# 2016-07-29   209.48   217.54   207.06   217.12  1648453700 
# 2016-08-04   217.19   217.65   214.25   216.41   264076600 

# You might want to use the `name` argument to create syntactically valid names 
SPY <- to.period(OHLCV(SPY), period = "months", name = "SPY") 
tail(SPY) 
#   SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume 
# 2016-03-31 195.01 206.87 194.45 205.52 2323306500 
# 2016-04-29 204.35 210.92 203.09 206.33 1910635600 
# 2016-05-31 206.92 210.69 202.78 209.84 1831962200 
# 2016-06-30 209.12 212.52 198.65 209.48 2612406900 
# 2016-07-29 209.48 217.54 207.06 217.12 1648453700 
# 2016-08-05 217.19 218.23 214.25 218.18 335650500 

vorsichtig sein, mehrere Spalten, die in den Etiketten "Open" gehören, „High ", etc .. als OHLC kann dann mehr als 4 Spalten zurückgeben. Es kann sicherer sein, Ihre EHTS- Spalten explizit etwas wie „Öffnen“, „Hoch“, „Niedrig“, „Close“ und tut die offensichtliche Spalte Auswahl an relabel (aber mehr eintippen)

to.period(SPY[, c("Open", "High", "Low", "Close")], period = "months") 

Siehe ?period.apply für Beispiele, wie Sie Ihre eigene benutzerdefinierte Aggregationsfunktion verwenden können.