У меня есть xts последовательность событий биржевой торговли, которые я хочу обработать, чтобы сгенерировать 1-минутный временной ряд OHLC. Например, этот набор сделок:
Timestamp Price Size
9:30:00.123 12.32 200
9:30.00.532 12.21 100
9:30.32.352 12.22 500
9:30.45.342 12.35 200
Должен привести к записи 9:30:00:
Timestamp Open High Low Close
9:30:00 12.32 12.35 12.21 12.35
То, как я подошел к этому, состоит в том, чтобы разбить оригинальный торговый ряд по минутам:
myminseries = do.call(rbind, lapply(split(mytrades, "minutes"), myminprocessing))
В результате получаются записи, которые я хочу, но есть проблема: если акция не имеет сделки в данную минуту, я полностью пропущу эту запись. Вместо этого я хочу иметь запись «все 0» для минуты пропущенных сделок. Например, если в 9:31:00 сделки нет, у меня должно быть:
Timestamp Open High Low Close
9:30:00 12.32 12.35 12.21 12.35
9:31:00 0 0 0 0
9:32:00 12.40 12.42 12.38 12.42
Как я могу засыпать 1-минутную серию? Или я должен использовать совершенно другой подход, чем split ()?