[R-br] Erro em função
Carlos Mendonça
csaeslpv em centroin.com.br
Terça Setembro 20 19:03:47 BRT 2011
Benilton,
você poderia me ajudar, pois com o meu nível de conhecimento do R eu não
consegui implementar a sua solução de
"checar se 'bins' eh duplicado, fazer o cut() nos
valores unicos, determinar sua media e, depois, reconstruir a resposta
(ie. colocar de volta o valor duplicado com a media correspondente)
para que fique com o comprimento correto.".
Obrigado,
Carlos Mendonça.
Em 31 de agosto de 2011 09:30, Carlos Mendonça
<csaeslpv em centroin.com.br>escreveu:
> Caros, estou utilizando a função abaixo que calcula os quartis ponderados
> que funcionou muito bem até agora.
>
> tmp = subset(arq1, select=c(codigo, qtd, val))
> 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)
> aux1 <- 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(aux1) <- names(qs)
> return(aux1)
> }
> aux1 <- do.call(rbind,
> lapply(split(tmp, tmp$codigo),
> function(y)
> equantileByCounts(y$qtd, y$val, c(.25, .75))))
>
>
> O meu processamento é por trimestres e em apenas um deles deu a
> seguinte mensagem de erro:
>
> "Erro em cut.default(coord, bins, labels = FALSE, include.lowest = T) :
> 'breaks' não são únicos"
> Alguém saberia me dizer o que posso fazer?
>
> Um abraço,
>
> Carlos Mendonça.
>
>
--
Um abraço,
Mendonça
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110920/4af01aba/attachment.html>
Mais detalhes sobre a lista de discussão R-br