
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@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.