Agregando dados de preços em diferentes horizontes temporais em R data.table

Oi, eu estou olhando para rolar dados minuciosamente em um data.table para 5 minutos (ou 10 minutos) horizonte. Eu sei que isso é feito facilmente usando xts e a função to.minutes5, mas prefiro não usar xts nesse caso, pois o conjunto de dados é bastante grande. Existe uma maneira fácil de fazer isso no data.table?

Exemplo de dados: neste exemplo, o período entre 21,30 e 21,34 (ambos inclusos) teria apenas uma linha com t = 21,30, aberto = 0,88703, alto = 0,88799, baixo = 0,88702, fechado = 0,88798, volume = 43 (observe os dados de 21.35 em si é ignorado).

                      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

Saída do dput (head (myData)) conforme solicitado pelo GSee. Quero usar o data.table para armazenar mais alguns campos derivados com base nesses dados originais. Portanto, mesmo que eu usei xts para aumentar essas barras de preço, terei que colocá-las em uma tabela de dados de alguma forma, para que eu aprecie algumas dicas sobre a maneira correta de armazenar data.table com itens xts.

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

questionAnswers(1)

yourAnswerToTheQuestion