R: ускорение «группирования» операций

У меня есть симуляция, которая имеет огромный агрегат и объединяет шаг прямо посередине. Я прототипировал этот процесс с помощью функции plyr ddply (), которая отлично работает для огромного процента моих потребностей. Но мне нужно, чтобы этот шаг агрегации был быстрее, так как я должен запустить симуляции 10K. Я уже масштабирую симуляции параллельно, но если бы этот шаг был быстрее, я мог бы значительно уменьшить количество нужных мне узлов.

Вот разумное упрощение того, что я пытаюсь сделать:

library(Hmisc)

# Set up some example data
year <-    sample(1970:2008, 1e6, rep=T)
state <-   sample(1:50, 1e6, rep=T)
group1 <-  sample(1:6, 1e6, rep=T)
group2 <-  sample(1:3, 1e6, rep=T)
myFact <-  rnorm(100, 15, 1e6)
weights <- rnorm(1e6)
myDF <- data.frame(year, state, group1, group2, myFact, weights)

# this is the step I want to make faster
system.time(aggregateDF <- ddply(myDF, c("year", "state", "group1", "group2"),
                     function(df) wtd.mean(df$myFact, weights=df$weights)
                                 )
           )

Все советы или предложения приветствуются!

Ответы на вопрос(5)

Ваш ответ на вопрос