[R-br] arredondar soma para 100%

Leonard de Assis assis.leonard em gmail.com
Sexta Janeiro 27 10:37:07 BRST 2012


Essa história de arredondamento lembra uma velha prática de orçamentos
em licitação nos anos 80 e 90.

Nesta época, computadores engatinhavam e era praxe ter que apresentar
orçamentos tendo que fechar 'na fita' da máquina de calcular.

Nesta época eu mexia com programação... sofri muito tendo que fazer
rotinas para propagar erros de arredondamento como se fossem as velhas
máquinas de calcular

Quando formei em Estatística, peguei situação semelhante na SEE, onde
cada gráfico ou tabela, tinha que deslocar um estagiário para fazer os
totais fecharem com as somas.

O tempo passa e os problemas continuam os mesmos...


[]s
Leonard de Assis
assis <dot> leonard <at> gmail <dot> com


Em 27/01/2012 10:04, Benilton Carvalho escreveu:
> Alex, o que vc esta' observado e' a acumulacao de erros de
> representacao, devido ao arredondamento. Uma forma de corrigir isso eh
> normalizar as proporcoes. Usando os dados aos quais voce referiu-se
> acima:
>
> pNaive = round(prop.table(tabela), digits=3)
> pFix = round(pNaive/sum(pNaive)*100, digits=1)
>
> Entretanto, note que essa solucao (como representada acima) pode nao
> ser geral e exigir algumas repeticoes (afinal, a todo momento voce
> esta' tentando representar numeros com trocentas casas decimais num
> grau de granularidade bem maior).
>
> Ivan, sobre a representacao de 9/44... Eh 0.20454545... (periodica no
> 45). Ou, usando a escala acima: 20.4545454545.... Arredondar para a
> i-esima casa decimal (pelo menos conforme eu aprendi, que eh
> concordante com a implementacao do R) consiste em truncar na casa
> (i+1), testar se aquele digito e' maior ou igual a 5 e, se sim,
> incrementar a casa i em 1 unidade. Dito isso:
>
> - Arredondar para 1 digito: Segundo digito eh 5, entao incrementa o
> primeiro: 20.5
> - Arredondar para 2 digitos: Terceiro digito eh 4, entao mantem o segundo: 20.45
> - Arredondar para 3 digitos: Quarto digito eh 5, entao incrementa o
> terceiro: 20.455
>
> Pode ser que a estrategia a qual voce esteja se referindo seja diferente?
>
> b
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.


Mais detalhes sobre a lista de discussão R-br