[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