[R-br] Problemas com split+lapply

Benilton Carvalho beniltoncarvalho em gmail.com
Terça Novembro 1 10:00:17 BRST 2011


a generalizacao da minha solucao eh:


library(doSNOW)
library(foreach)

ncpu <- 4
cl <- makeSOCKcluster(rep("localhost",ncpu))
registerDoSNOW(cl)

mediaPorGrupo <- function(x, k, grp){
   tmp <- subset(x, R==grp$R & CC==grp$CC & TF==grp$TF)
   tmp <- cbind(tmp[, c('P', 'R', 'TF', 'CC')],
         ma.y=as.numeric(filter(tmp$y, rep(1/k, k))),
         ma.x=as.numeric(filter(tmp$z, rep(1/k, k))))
   tmp[complete.cases(tmp),]
}


P <- 2000:2010
Rep <- letters[1:5]
TF <- 1:2
CC <- paste("H-",101:299,sep="")
a <- expand.grid(P=P,R=Rep,TF=TF,CC=CC)
a$y <- rnorm(nrow(a))
a$z <- runif(nrow(a))

grps <- unique(a[, c('R', 'CC', 'TF')])

system.time(res <- foreach(i=1:nrow(grps), .combine=rbind) %dopar% {
   mediaPorGrupo(a, 3, grps[i,])
})


Mais detalhes sobre a lista de discussão R-br