Более быстрые таблицы пропорций в R

Я создаю таблицы пропорций на основе объекта xts. Поскольку это часть большой программы, которая (к сожалению) требует около 10 ^ 6 циклов, это создает довольно узкое место, и я хотел бы ускорить его.

Вот пример того, с чего я начал:

library(quantmod)

test.xts <- xts(sample(seq(1,5, by=.5), 50, replace=T), as.Date(1:50))

system.time(for(i in 1:10000){

  prop.table(table(test.xts))

})

>user  system elapsed 
 19.86    0.00   18.58 

Я уже заменил xts на матрицу, что привело к значительному увеличению скорости. Я только упоминаю, что изначально это xts на тот случай, если мне не хватает чего-то с xts, что ускорило бы это сверх того, что я уже видел при преобразовании его в матрицу.

test.mat <- as.matrix(test.xts)

system.time(for(i in 1:10000){

  prop.table(table(test.mat))

})

>user  system elapsed 
 2.78    0.00    2.90 

Но я действительно хотел бы, чтобы это было как можно быстрее, поэтому я надеюсь, что у других есть предложения по дальнейшим улучшениям. Я надеюсь, что есть очевидный подход, который я упускаю из виду.

Еще одна дополнительная информация заключается в том, что выходные данные из этих таблиц в конечном итоге объединяются с аналогичными выходными данными за другой период времени, поэтому измерения должны оставаться названными. (Т.е. мне нужно иметь возможность сопоставить пропорцию для значения «10» в момент времени 1 с пропорцией «10» во время 2).

Будем признательны за любую помощь.

5
задан Bryan S 18 May 2012 в 17:52
поделиться