[R-br] arredondar soma para 100%

Elias T. Krainski eliaskrainski em yahoo.com.br
Segunda Fevereiro 6 18:13:50 BRST 2012


elementar (depois que alguém sugere) ... 

Elias T. Krainski

>________________________________
> De: Henrique Dallazuanna <wwwhsd em gmail.com>
>Para: r-br em listas.c3sl.ufpr.br; Alexandro (Yahoo) <vl.alexandro em yahoo.com.br> 
>Enviadas: Quarta-feira, 1 de Fevereiro de 2012 23:06
>Assunto: Re: [R-br] arredondar soma para 100%
> 
>
>Alexandre, 
>
>
>Tente assim
>
>
>diff(c(0, round(cumsum(p), 3))) * 100
>
>
>2012/1/29 Alexandro (Yahoo) <vl.alexandro em yahoo.com.br>
>
>Mauro,
>>usando o comando
>>graf=barplot(tabela,axes=FALSE,ylim=c(0,100));text(graf,porc,format(porc),pos=1);text(graf,porc,"            %",pos=1);text(graf,porc,format(tabela))
>>
>>a soma era 100,1%
>>
>>
>>depois com a grande ajuda do Benilton, substituindo porc por pFix
>>graf=barplot(tabela,axes=FALSE,ylim=c(0,100));text(graf,pFix,format(pFix),pos=1);text(graf,pFix,"            %",pos=1);text(graf,pFix,format(tabela))
>>
>>a soma ficou 100% > perfeito !
>>A lástima é que não vale para todo caso !
>>Daí tem que se fazer o que o Leonard disse:
>>cada gráfico ou tabela, deve deslocar alguém para fazer os
>>
>>totais fecharem com as somas. 
>>
>>
>>
>>Boa semana!
>>Respeitosamente,
>>Alex
>>
>>
>>
>>
>>
>>>________________________________
>>> De: Mauro Sznelwar <sznelwar em uol.com.br>
>>>
>>>Para: r-br em listas.c3sl.ufpr.br; Ivan Bezerra Allaman <ivanalaman em yahoo.com.br> 
>>>Enviadas: Domingo, 29 de Janeiro de 2012 13:31
>>>
>>>Assunto: Re: [R-br] arredondar soma para 100%
>>> 
>>>
>>>Rodei estes comandos com os anteriores e não 
vi diferença!
>>>a=rep("a",9);b=rep("b",30);c=rep("c",5)
>>>dados=c(a,b,c);tabela=table(dados)
>>>#porc=round(table(dados)/length(dados)*100,digits=1)
>>>pNaive = 
round(prop.table(tabela), digits=3)
>>>pFix = round(pNaive/sum(pNaive)*100, 
digits=1)
>>>graf=barplot(tabela,axes=FALSE,ylim=c(0,100));text(graf,porc,format(porc),pos=1);text(graf,porc," 

 %",pos=1);text(graf,porc,format(tabela))
>>>title(main = 
"Quantidade e Porcentagem das Categorias :a,b,c")
>>>
>>>
>>>
>>>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.
>>>
>>>
>>_______________________________________________
>>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.
>>
>
>
>
>-- 
>Henrique Dallazuanna
>Curitiba-Paraná-Brasil
>25° 25' 40" S 49° 16' 22" O
>
>_______________________________________________
>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