Antonio Rodriguez Andres
2017-Jun-18 16:23 UTC
[R-es] Problema con Histograma con porcentajes usando ggplot
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] ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170618/e9d08323/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/e9d08323/attachment-0001.png>
Carlos J. Gil Bellosta
2017-Jun-18 21:50 UTC
[R-es] Problema con Histograma con porcentajes usando ggplot
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/63ba6dc7/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/63ba6dc7/attachment-0001.png>
Antonio Rodriguez Andres
2017-Jun-18 22:20 UTC
[R-es] Problema con Histograma con porcentajes usando ggplot
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/bcb18f9b/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/bcb18f9b/attachment-0001.png>
Possibly Parallel Threads
- Problema con Histograma con porcentajes usando ggplot
- Problema con Histograma con porcentajes usando ggplot
- Problema con Histograma con porcentajes usando ggplot
- Problema con Histograma con porcentajes usando ggplot
- Crear una variable tipo factor a partir de un vector de caracteres