[R-es] Problema con Histograma con porcentajes usando ggplot

Antonio Rodriguez Andres antoniorodriguezandres70 en gmail.com
Lun Jun 19 00:42:42 CEST 2017


Gracias. Voy a estudiarlo. Soy neófito y me llevará algún tiempo.

El 18/06/2017 5:37 p. m., "Carlos J. Gil Bellosta" <cgb en datanalytics.com>
escribió:

> 1) Agrega por país y nivel (en freq).
> 2) Por país, haz algo así como pct = 100 * freq / sum(freq).
>
> Con plyr, dos líneas.
>
> El 19 de junio de 2017, 0:20, Antonio Rodriguez Andres <
> antoniorodriguezandres70 en gmail.com> escribió:
>
>> Gracias. Alguna idea de que usar para calcular los porcentajes y
>> almacenarlos. Se puede usar flat table?
>>
>> El 18/06/2017 4:50 p. m., "Carlos J. Gil Bellosta" <cgb en datanalytics.com>
>> escribió:
>>
>>> Los porcentajes que obtienes con tu código son sobre todas las facetas,
>>> no país a país.
>>>
>>> Calcula los porcentajes previamente a por país y representa esa columna
>>> en las barras.
>>>
>>> Un saludo,
>>>
>>> Carlos J. Gil Bellosta
>>> http://www.datanalytics.com
>>>
>>>
>>>
>>> El 18 de junio de 2017, 18:23, Antonio Rodriguez Andres <
>>> antoniorodriguezandres70 en gmail.com> escribió:
>>>
>>>> Estimados
>>>>
>>>> Soy un nuevo usario de R, y estoy usando como base de datos el European
>>>> Social Survey, que tiene datos de 40,000 individuos, y alrededor de 23
>>>> países europeos. Lo que he seleccionado es la útima  ola, el round 7, para
>>>> el año 2014.
>>>>
>>>> He leido los datos, desde SPSS y aquí tienen la base de datos y que
>>>> tipo de objetos se han generado, y tambíen la distribución por pais de la
>>>> muestra. No he usado los weights del survey todavía, solo estoy explorando
>>>> los datos.
>>>>
>>>> class(ess)
>>>>
>>>> ## [1] "lbl_df"     "data.frame"
>>>>
>>>> frq(ess$cntry)
>>>>
>>>> ## # Country
>>>> ##
>>>> ##  val          label  frq raw.prc valid.prc cum.prc
>>>> ##    1        Austria 1795    4.47      4.47    4.47
>>>> ##    2        Belgium 1769    4.40      4.40    8.87
>>>> ##    3    Switzerland 1532    3.81      3.81   12.68
>>>> ##    4 Czech Republic 2148    5.35      5.35   18.03
>>>> ##    5        Germany 3045    7.58      7.58   25.60
>>>> ##    6        Denmark 1502    3.74      3.74   29.34
>>>> ##    7        Estonia 2051    5.10      5.10   34.45
>>>> ##    8          Spain 1925    4.79      4.79   39.24
>>>> ##    9        Finland 2087    5.19      5.19   44.43
>>>> ##   10         France 1917    4.77      4.77   49.20
>>>> ##   11 United Kingdom 2264    5.63      5.63   54.83
>>>> ##   12        Hungary 1698    4.23      4.23   59.06
>>>> ##   13        Ireland 2390    5.95      5.95   65.01
>>>> ##   14         Israel 2562    6.38      6.38   71.38
>>>> ##   15      Lithuania 2250    5.60      5.60   76.98
>>>> ##   16    Netherlands 1919    4.78      4.78   81.76
>>>> ##   17         Norway 1436    3.57      3.57   85.33
>>>> ##   18         Poland 1615    4.02      4.02   89.35
>>>> ##   19       Portugal 1265    3.15      3.15   92.50
>>>> ##   20         Sweden 1791    4.46      4.46   96.95
>>>> ##   21       Slovenia 1224    3.05      3.05  100.00
>>>> ##   NA             NA    0    0.00        NA      NA
>>>> Ahora voy a hacer un histograma de la variable satisfaccion con la
>>>> vida,  cuyo rango es de 0-10 (numeros enteros, donde mayor valor indica
>>>> mayor satisfacción con la vida.
>>>>
>>>> get_labels(ess$stflife)
>>>>
>>>>
>>>> ##  [1] "Extremely dissatisfied" "1"
>>>> ##  [3] "2"                      "3"
>>>> ##  [5] "4"                      "5"
>>>> ##  [7] "6"                      "7"
>>>> ##  [9] "8"                      "9"
>>>> ## [11] "Extremely satisfied"    "Refusal"
>>>>
>>>> ## [13] "Don't know"             "No answer"
>>>>
>>>> Lo que he hecho es hacer una tabla de la distribución de esa variable
>>>> para un sólo pais Dinamarca (DK)
>>>>
>>>> flat_table(subset(ess, cntry %in% c("DK")), stflife, margin= "row")
>>>>
>>>> ## x     0     1     2     3     4     5     6     7     8     9    10
>>>> ##
>>>>
>>>> ##    0.33  0.27  0.47  1.33  0.93  2.87  3.67  8.20 28.40 29.53 24.00
>>>>
>>>>
>>>> Sin embargo al hacer un histrogama para los paises con ggplot, anda
>>>> algo mal con los porcentajes. Por ejemplo sabemos que un 24 % respondió que
>>>> están muy satisfechos en DK. Sin embargo
>>>>
>>>> los porcentajes son muy pequeños.
>>>>
>>>>
>>>> myplot = ggplot(ess, aes (stflife)) +
>>>>   geom_bar(aes(y = (..count..)/sum(..count..))) +
>>>>   scale_y_continuous(labels=scales::percent) +
>>>>   ylab("Relative frequencies") + facet_wrap(~cntry)
>>>>
>>>> plot(myplot)
>>>>
>>>> [image: Inline images 1]
>>>>
>>>>
>>>> _______________________________________________
>>>> R-help-es mailing list
>>>> R-help-es en r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>
>>>
>>>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170618/d51c05c8/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: imagen.png
Type: image/png
Size: 79665 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170618/d51c05c8/attachment-0001.png>


Más información sobre la lista de distribución R-help-es