#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]