[R-br] Erro em função
Carlos Mendonça
csaeslpv em centroin.com.br
Sexta Setembro 23 07:03:03 BRT 2011
Benilton,
vou tentar explicar melhor o que eu preciso.
Eu tenho um arquivo com as variáveis codigo, peso, val, pond, mes e ano.
Esse arquivo de +/- 1.500.000 observações, tem *n* observações para cada
código por mês e ano. Na minha rotina eu esqueço a informação do mês, pois
eu quero essa rotina por ano. Eu preciso calcular os quartis (1º e 3º) por
código da variável pond ponderados pela variável val. Em seguida preciso
calcular a diferença interquartílica e os limites (superior e inferior) com
os resultados dos quartis. Depois, junto esse arquivo com os limites com o
arquivo com todas as informações e retiro dele as observações cujo pond não
esteja entre os limites. Executo essa rotina 2 vezes.
Estou mandando os novos links com o código e os dados.
http://www.datafilehost.com/download-7fe849b1.html
http://www.datafilehost.com/download-0437cad6.html
Em 22 de setembro de 2011 10:51, Carlos Mendonça
<csaeslpv em centroin.com.br>escreveu:
>
>
> 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
>
>
--
Um abraço,
Mendonça
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110923/82ec64b8/attachment.html>
Mais detalhes sobre a lista de discussão R-br