
note q magicamente a minha funcao foi como equantileByCounts(), mas a intencao era quantileByCounts(). 2011/7/4 Benilton Carvalho <beniltoncarvalho@gmail.com>:
Carlos,
ando meio enrolado para ver com detalhes o que pode estar acontecendo... e, alem disso, nao consigo usar o odbcConnectAccess (pode ser que seja especifico de plataforma - mas isso eh o minimo, nao fui procurar detalhes).
A minha impressao eh que o problema q vc tem eh exatamente por conta de rep(valor, ponderador)... entao, uma ideia a se tentar e' calcular os quantis sem precisar do rep... veja o codigo anexo (note q uso Hmisc, vc nao precisa fazer isso, continue da forma q ja esta fazendo, desde q o meu 'tmp' corresponda a sua tabela com todos os dados):
## INICIO library(Hmisc) tmp <- mdb.get('bd1_Teste.mdb', 'Plan1', fileEncoding='latin1', encoding='latin1') names(tmp) <- c('codigo', 'valor', 'ponderador', 'cad')
equantileByCounts <- function(x, counts, qs){ tot <- sum(counts) i <- order(x) x <- x[i] counts <- counts[i] partial <- cumsum(counts) qsObs <- qs*tot start <- floor(qsObs) end <- ceiling(qsObs) i <- length(qs) res <- sapply(1:i, function(.x, start, end, x){ coord <- c(start[.x], end[.x]) bins <- c(1, partial) grps <- cut(coord, bins, labels=FALSE, include.lowest=T) mean(x[grps]) }, start=start, end=end, x=x) names(res) <- names(qs) return(res) }
res <- do.call(rbind, lapply(split(tmp, tmp$codigo), function(y) quantileByCounts(y$valor, y$ponderador, c(.25, .75)))) ## FIM
2011/7/2 Carlos Mendonça <csaeslpv@centroin.com.br>:
Estou com problema para utilizar a minha base de dados(.mdb). Ela tem em torno de 2 milhões de registros, e
quando tento executar aparece um erro de falta de memória ("Erro: não é possível alocar vetor de tamanho 1.1 Gb"). Como posso resolver essa questão?
Coloquei um exemplo reproduzivel, inclusive com a leitura de dados.
Criei um arquivo com parte da minha base de dados. O link é http://www.datafilehost.com/download-529c5b03.html
O código que eu estou utilizando está no link http://www.datafilehost.com/download-a5b8a3ca.html Obrigado, Carlos Mendonça.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Successful people ask better questions, and as a result, they get better answers. (Tony Robbins)
-- Successful people ask better questions, and as a result, they get better answers. (Tony Robbins)