<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span>Obrigado Ivan pelas considerações.</span></div><div><span>Benilton, sua solução para este caso ficou perfeita !</span></div><div><span>Então Leonard, no meu caso sempre tenho que fazer esses arredondamentos,</span></div><div><span>pois são muitos os causos cujas somas dão 99,9% ou 100,1%</span></div><div>Felicidades!</div><div>Alex</div><div><br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; margin-top: 5px; padding-left: 5px;"> <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "> <div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1"> <b><span style="font-weight:bold;">De:</span></b> Benilton Carvalho <beniltoncarvalho@gmail.com><br> <b><span
style="font-weight: bold;">Para:</span></b> r-br@listas.c3sl.ufpr.br; Ivan Bezerra Allaman <ivanalaman@yahoo.com.br> <br> <b><span style="font-weight: bold;">Enviadas:</span></b> Sexta-feira, 27 de Janeiro de 2012 10:04<br> <b><span style="font-weight: bold;">Assunto:</span></b> Re: [R-br] arredondar soma para 100%<br> </font> </div> <br>Alex, o que vc esta' observado e' a acumulacao de erros de<br>representacao, devido ao arredondamento. Uma forma de corrigir isso eh<br>normalizar as proporcoes. Usando os dados aos quais voce referiu-se<br>acima:<br><br>pNaive = round(prop.table(tabela), digits=3)<br>pFix = round(pNaive/sum(pNaive)*100, digits=1)<br><br>Entretanto, note que essa solucao (como representada acima) pode nao<br>ser geral e exigir algumas repeticoes (afinal, a todo momento voce<br>esta' tentando representar numeros com trocentas casas decimais num<br>grau de granularidade bem maior).<br><br>Ivan, sobre a representacao de 9/44... Eh
0.20454545... (periodica no<br>45). Ou, usando a escala acima: 20.4545454545.... Arredondar para a<br>i-esima casa decimal (pelo menos conforme eu aprendi, que eh<br>concordante com a implementacao do R) consiste em truncar na casa<br>(i+1), testar se aquele digito e' maior ou igual a 5 e, se sim,<br>incrementar a casa i em 1 unidade. Dito isso:<br><br>- Arredondar para 1 digito: Segundo digito eh 5, entao incrementa o<br>primeiro: 20.5<br>- Arredondar para 2 digitos: Terceiro digito eh 4, entao mantem o segundo: 20.45<br>- Arredondar para 3 digitos: Quarto digito eh 5, entao incrementa o<br>terceiro: 20.455<br><br>Pode ser que a estrategia a qual voce esteja se referindo seja diferente?<br><br>b<br>_______________________________________________<br>R-br mailing list<br><a ymailto="mailto:R-br@listas.c3sl.ufpr.br" href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br"
target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br><br><br> </div> </div> </blockquote></div> </div></body></html>