У меня есть фрейм данных под названием «рыночные данные», который содержит 3 000 000 строк (имена строк: от 1 до 3 000 000) и 2 столбца (имена столбцов: «середина», «бо»).
> head(marketdata)
mid bo
1 250 0.05
2 251 0.07
3 252 0.13
4 249 0.08
5 250 0.12
Моя функция такова:
movingWindow <- function (submarketdata) {
temp <- submarketdata[submarketdata$bo <= 0.1, ]
return( c(mean(temp$mid), NROW(temp)/100) )
}
result <- lapply(c(101:NROW(marketdata)), function(i) movingWindow( marketdata[ (i-99):i , ] ))
Например, для строки 101 я буду искать marketdata[2:101,]
. Затем найдите те строки, которые имеют значение «bo» ‹= 0,1 как« эффективный образец ». И, наконец, вычислите среднее значение этих «эффективных образцов» и их процентное содержание.
Однако этот сценарий работает очень медленно. Чтобы закончить все 3 000 000 строк, потребовалось около 15 минут. Может ли кто-нибудь помочь мне ускорить это? Спасибо.
marketdata
. Прочтите этот FAQ. - person Roland   schedule 12.12.2013movingWindow
функции, так как каждый из ее выходов легко векторизуется. - person Carl Witthoft   schedule 13.12.2013