Antonio Rodriguez Andres
2017-Jun-19 03:28 UTC
[R-es] Problema con Histograma con porcentajes usando ggplot
Muchas gracias. Me puede recomendar algún libro donde poder empezar. Gracias El 18/06/2017 9:46 p. m., <javier.ruben.marcuzzi en gmail.com> escribió:> > > Estimado Antonio Rodriguez Andres > > > > Usted dice que está en sus inicios con R, y desea realizar un gráfico. > Esto no es problema, el inconveniente es que está mezclando librerías, es > lógico, se puede y facilita el trabajo, pero como usted no tiene la > experiencia necesaria está mezclando conceptos y formas de trabajo > distintas. > > > > Le recomiendo que pare, busque un ejemplo o un libro de R donde hay algo > semejante a lo que usted desea, realiza unos ejercicios y comienza otra vez. > > > > Por ejemplo ggplot2 tiene algunos efectos gráficos de presentación > vistosos, pero la forma de trabajo requiere conocer algo más el lenguaje, > si intenta lo mismo pero con solo los paquetes básicos comprenderá cómo se > realizan los cálculos, algo de trabajo con datos, algunas alternativas para > realizar el mismo trabajo de distinta forma, y luego busca utilizar ggplot2 > como pretende ahora. Creo que las posibilidades de obtener mejores > resultados se incrementan si ahora se frena y puede replantear el problema > en su mente. > > > > Espere, descanse, el lunes comienza otra vez desde cero y el martes > regresa a su problema, invertirá mejor su tiempo con R si aumenta el manejo > de lo básico (antes de usar varias librerías o alternativas que aparecieron > como sugerencias a su pregunta). > > > > Javier Rubén Marcuzzi > > > > *De: *Antonio Rodriguez Andres <antoniorodriguezandres70 en gmail.com> > *Enviado: *domingo, 18 de junio de 2017 21:20 > *Para: *Carlos J. Gil Bellosta <cgb en datanalytics.com> > *CC: *r-help-es <r-help-es en r-project.org> > *Asunto: *Re: [R-es] Problema con Histograma con porcentajes usando ggplot > > > > Creo que esto me da para DK, y luego veré como aplicar el barplot > > ess %>% > filter(cntry %in% c("DK")) %>% > count (stflife) %>% > mutate (freq = (n /sum(n)*100))%>% > print > > > > 2017-06-18 19:01 GMT-05:00 Antonio Rodriguez Andres < > antoniorodriguezandres70 en gmail.com>: > > He conseguido el total para un país, pero no me deja usar percent > count() /sum(count), alguna idea, entiendo que puedo esar la misma sintaxis > para el barplot > > ess %>% > filter(cntry %in% c("DK")) %>% > count (stflife) %>% > print > > > > 2017-06-18 18:07 GMT-05:00 Antonio Rodriguez Andres < > antoniorodriguezandres70 en gmail.com>: > > #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) > > > > > > > -- > > 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) > > > > > > > -- > > 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) > > > > >[[alternative HTML version deleted]]
Freddy Omar López Quintero
2017-Jun-19 04:37 UTC
[R-es] Problema con Histograma con porcentajes usando ggplot
2017-06-18 23:28 GMT-04:00 Antonio Rodriguez Andres < antoniorodriguezandres70 en gmail.com>:> Me puede recomendar algún libro donde poder empezar.?De ggplot2, sin duda el libro de su (¿cismático?) creador es una referencia obligada: Wickham: ggplot2 Elegant Graphics for Data Analysis, 2016?>y uno muy bueno de Chang: R Graphics Cookbook, 2012>¡ ?Salud!? -- «Pídeles sus títulos a los que te persiguen, pregúntales cuándo nacieron, diles que te demuestren su existencia.» Rafael Cadenas [[alternative HTML version deleted]]
Pedro Herrero Petisco
2017-Jun-19 08:06 UTC
[R-es] Problema con Histograma con porcentajes usando ggplot
Además del llibro de Wickham te recomiendo esta página: http://www.r-graph-gallery.com/ Suele ayudar mucho a crear los gráficos como quieres. El 19 de junio de 2017, 6:37, Freddy Omar López Quintero < freddy.lopez.quintero en gmail.com> escribió:> 2017-06-18 23:28 GMT-04:00 Antonio Rodriguez Andres < > antoniorodriguezandres70 en gmail.com>: > > > Me puede recomendar algún libro donde poder empezar. > > > ?De ggplot2, sin duda el libro de su (¿cismático?) creador es una > referencia obligada: > > Wickham: ggplot2 Elegant Graphics for Data Analysis, 2016? > > > > y uno muy bueno de > > Chang: R Graphics Cookbook, 2012 > > > > ¡ > ?Salud!? > > > -- > «Pídeles sus títulos a los que te persiguen, pregúntales > cuándo nacieron, diles que te demuestren su existencia.» > > Rafael Cadenas > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Jose Luis Cañadas Reche
2017-Jun-19 18:51 UTC
[R-es] Problema con Histograma con porcentajes usando ggplot
Hola a todos. Utilizando la sintaxis de dplyr (¿ya nadie usa tapply, ni aggregate, ni doby??), creo que buscas algo así, agrupando por país y por stlife.. ess_agrupado <- ess %>% group_by(cntry,stflife) %>% summarise (n = n()) %>% mutate(freq = n / sum(n)) ggplot(ess_agrupado, aes (x=as.factor(stflife))) + geom_bar(aes(y = freq), stat="identity") + scale_y_continuous(labels=scales::percent) + ylab("Relative frequencies") + facet_wrap(~cntry) Saludos El 19/06/17 a las 06:37, Freddy Omar López Quintero escribió:> 2017-06-18 23:28 GMT-04:00 Antonio Rodriguez Andres < > antoniorodriguezandres70 en gmail.com>: > >> Me puede recomendar algún libro donde poder empezar. > > ?De ggplot2, sin duda el libro de su (¿cismático?) creador es una > referencia obligada: > > Wickham: ggplot2 Elegant Graphics for Data Analysis, 2016? > y uno muy bueno de > > Chang: R Graphics Cookbook, 2012 > ¡ > ?Salud!? > >