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>
Carlos J. Gil Bellosta
2017-Jun-18 22:37 UTC
[R-es] Problema con Histograma con porcentajes usando ggplot
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/20170619/a416eb8f/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/20170619/a416eb8f/attachment-0001.png>
Antonio Rodriguez Andres
2017-Jun-18 22:42 UTC
[R-es] Problema con Histograma con porcentajes usando ggplot
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>
Antonio Rodriguez Andres
2017-Jun-18 23:07 UTC
[R-es] Problema con Histograma con porcentajes usando ggplot
#Simple table con frecuencias absolutas y crear relativas count =table(ess$stflife) percent = 100* (count)/sum(count) Carlos he creado a esto a nivel general en vez de usar prop.table. Según lo que dices o entiendo, debo de usar la función ddply para hacerlo a nivel de todos los paises, y entiendo que ddply (, c(""), debo de indicar los paises? Saludos 2017-06-18 17:37 GMT-05:00 Carlos J. Gil Bellosta <cgb en datanalytics.com>:> 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 >>>> >>> >>> >-- Member, Editorial Committee, *The Economic and Labour Relations Review* (a SAGE journal) http://elr.sagepub.com/ Member, Editorial Committee, African Journal of Economic and Management Studies http://emeraldgrouppublishing.com/products/journals/editorial_team.htm?id=ajems https://www.researchgate.net/profile/Antonio_Andres (Research Gate profile) ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170618/9b01f742/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/9b01f742/attachment-0001.png>
Apparently Analagous 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