Aggregation von Preisdaten zu unterschiedlichen Zeithorizonten in R data.table

Hallo, ich bin auf der Suche, minutiös Daten in einer data.table bis 5 minutiös (oder 10 minutiös) Horizont zu rollen. Ich weiß, dass dies mithilfe von xts und der to.minutes5-Funktion leicht möglich ist, aber ich bevorzuge in diesem Fall die Verwendung von xts, da der Datensatz ziemlich groß ist. Gibt es eine einfache Möglichkeit, dies in data.table zu tun?

Datenbeispiel: In diesem Beispiel hätte der Zeitraum zwischen 21.30 und 21.34 (beide einschließlich) nur eine Zeile mit t = 21.30, open = 0.88703, high = 0.88799, low = 0.88702, close = 0.88798, volume = 43 (beachten Sie die Daten von 21.35 selbst wird ignoriert).

                      t    open    high     low   close volume
 1: 2010-01-03 21:27:00 0.88685 0.88688 0.88685 0.88688      2
 2: 2010-01-03 21:28:00 0.88688 0.88688 0.88686 0.88688      5
 3: 2010-01-03 21:29:00 0.88688 0.88704 0.88687 0.88703      7
 4: 2010-01-03 21:30:00 0.88703 0.88795 0.88702 0.88795     10
 5: 2010-01-03 21:31:00 0.88795 0.88795 0.88774 0.88778      7
 6: 2010-01-03 21:32:00 0.88778 0.88778 0.88753 0.88760      8
 7: 2010-01-03 21:33:00 0.88760 0.88781 0.88760 0.88775     11
 8: 2010-01-03 21:34:00 0.88775 0.88799 0.88775 0.88798      7
 9: 2010-01-03 21:35:00 0.88798 0.88803 0.88743 0.88782      8
10: 2010-01-03 21:36:00 0.88782 0.88782 0.88770 0.88778      6

Ausgabe von dput (head (myData)) wie von GSee angefordert. Ich möchte die data.table zum Speichern weiterer abgeleiteter Felder verwenden, die auf diesen Originaldaten basieren. Selbst wenn ich xts zum Aufrollen dieser Preisbalken verwendet hätte, müsste ich sie irgendwie in eine Datentabelle einfügen. Daher würde ich mich über Tipps zum korrekten Speichern von data.table mit xts-Elementen freuen.

structure(list(t = structure(c(1241136000, 1241136060, 1241136120, 
1241136180, 1241136240, 1241136300), class = c("POSIXct", "POSIXt"
), tzone = "Europe/London"), open = c(0.89467, 0.89467, 0.89472, 
0.89473, 0.89504, 0.895), high = c(0.89481, 0.89475, 0.89473, 
0.89506, 0.8951, 0.895), low = c(0.89457, 0.89465, 0.89462, 0.89473, 
0.89486, 0.89486), close = c(0.89467, 0.89472, 0.89473, 0.89504, 
0.895, 0.89488), volume = c(96L, 14L, 123L, 49L, 121L, 36L)), .Names = c("t", 
"open", "high", "low", "close", "volume"), class = c("data.table", 
"data.frame"), row.names = c(NA, -6L), .internal.selfref = <pointer: 0x0000000000100788>)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage