[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