<div>Benilton, desculpe o trabalho, eu já havia entendido o que você sugeriu, mas eu não posso agregar os dados por código, pois assim, eu teria para </div><div> </div><div>cada código o valor do 1º e 3º quartis identicos, bem como, os limites (superior e inferior).</div>
<div> </div><div>Eu preciso que faça o cálculo dos quartis utilizando todos os valores da variável pond de cada código.</div><div> </div><div>Na verdade, o código inicial funcionou para um ano, mas quando eu executei um outro ano, ele me apresentou aquela mensagem de erro que eu listei no </div>
<div> </div><div>1º post, ou seja, "Erro em cut.default(coord, bins, labels = FALSE, include.lowest = T) : <br>                             'breaks' não são únicos"</div><div> </div><div>Obrigado,</div><div>
 </div><div>Carlos Mendonça.</div><div> </div><div> </div><div> </div><div>E eu vou explicar novamente... vc precisa agregar os dados<br>apropriadamente antes de executar equantilesByCounts().<br><br>O seu arquivo, originalmente, tem codigo, peso, val, mes e ano. Se vc<br>
vai ignorar mes/ano (ou qq combinacao deles), vc precisa agregar os<br>dados de peso e val para, so' depois, determinar pond.<br><br>Depois de feito isso, a funcao que escrevi para vc funcionara' como esperado.<br>
<br><br><br></div><div class="gmail_quote">Em 23 de setembro de 2011 07:03, Carlos Mendonça <span dir="ltr"><<a href="mailto:csaeslpv@centroin.com.br">csaeslpv@centroin.com.br</a>></span> escreveu:<br><blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="gmail_quote">
<font size="3" face="Times New Roman">

</font><p style="margin: 0cm 0cm 10pt;" class="MsoNormal"><font size="3"><font face="Calibri">Benilton,</font></font></p><div style="margin: 0cm 0cm 10pt;" class="MsoNormal"><font size="3"><font face="Calibri">vou tentar
explicar melhor o que eu preciso.</font></font></div><div style="margin: 0cm 0cm 10pt;" class="MsoNormal"><font size="3"><font face="Calibri">Eu tenho um arquivo com as variáveis codigo, peso, val,
pond, mes e ano. Esse arquivo de +/- 1.500.000 observações, tem <strong>n</strong> 
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<span>  </span>rotina 2 vezes.</font></font></div><div style="margin: 0cm 0cm 10pt;" class="MsoNormal"><font size="3"><font face="Calibri">Estou mandando os novos links com o código e os dados.</font></font></div>

<div style="margin: 0cm 0cm 10pt;" class="MsoNormal"><a href="http://www.datafilehost.com/download-7fe849b1.html" target="_blank"><font color="#0000ff" size="3" face="Calibri">http://www.datafilehost.com/download-7fe849b1.html</font></a></div>

<div style="margin: 0cm 0cm 10pt;" class="MsoNormal"><font size="3" face="Times New Roman">

</font><p style="margin: 0cm 0cm 10pt;" class="MsoNormal"><a href="http://www.datafilehost.com/download-0437cad6.html" target="_blank"><font color="#0000ff" size="3" face="Calibri">http://www.datafilehost.com/download-0437cad6.html</font></a></p>

<font size="3" face="Times New Roman">

</font></div><div style="margin: 0cm 0cm 10pt;" class="MsoNormal"><font face="Times New Roman"></font> </div><div style="margin: 0cm 0cm 10pt;" class="MsoNormal">Em 22 de setembro de 2011 10:51, Carlos Mendonça <span dir="ltr"><<a href="mailto:csaeslpv@centroin.com.br" target="_blank">csaeslpv@centroin.com.br</a>></span> escreveu:<br>

</div><div><div></div><div class="h5"><div class="gmail_quote">
<blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="gmail_quote">
<br><br><div class="gmail_quote"><div>Em 31 de agosto de 2011 09:30, Carlos Mendonça <span dir="ltr"><<a href="mailto:csaeslpv@centroin.com.br" target="_blank">csaeslpv@centroin.com.br</a>></span> escreveu:<br>
</div><blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="gmail_quote">
<div>Caros, estou utilizando a função abaixo que calcula os quartis ponderados que funcionou muito bem até agora. </div><div><div></div><div><div> </div><div>tmp = subset(arq1, select=c(codigo, qtd, val))</div>
<div>equantileByCounts <- function(x, counts, qs){<br>

    tot <- sum(counts)<br>    i <- order(x)<br>    x <- x[i]<br>    counts <- counts[i]<br>    partial <- cumsum(counts)<br>    qsObs <- qs*tot<br>    start <- floor(qsObs)<br>    end <- ceiling(qsObs)<br>





    i <- length(qs)<br>    aux1 <- sapply(1:i,<br>                  function(.x, start, end, x){<br>                      coord <- c(start[.x], end[.x])<br>                      bins <- c(1, partial)<br>                      grps <- cut(coord, bins, labels=FALSE, include.lowest=T)<br>





                      mean(x[grps])<br>                  }, start=start, end=end, x=x)<br>    names(aux1) <- names(qs)<br>    return(aux1)<br>}</div><div>aux1 <- do.call(rbind,<br>               lapply(split(tmp, tmp$codigo),<br>





                      function(y)<br>                      equantileByCounts(y$qtd, y$val, c(.25, .75))))</div><div> </div><div> </div><div>O meu processamento é por trimestres e em apenas um deles deu a seguinte mensagem de erro:</div>





<div> </div><div> "Erro em cut.default(coord, bins, labels = FALSE, include.lowest = T) : <br>  'breaks' não são únicos"<br></div><div>Alguém saberia me dizer o que posso fazer?<br clear="all"><br></div>





<div>                Um abraço,</div>
<div> </div><font color="#888888">
<div>                Carlos Mendonça.</div><br>
</font></div></div></blockquote></div><font color="#888888"><br><br clear="all"><br>-- <br><div>                Um abraço,</div>
<div> </div>
<div>                Mendonça</div><br>
</font></blockquote></div><br><br clear="all"><br></div></div><font color="#888888">-- <br><div>                Um abraço,</div>
<div> </div>
<div>                Mendonça</div><br>
</font></blockquote></div><br><br clear="all"><br>-- <br><div>                Um abraço,</div>
<div> </div>
<div>                Mendonça</div><br>