7  Recuento

7.1 Recuento

Usaremos el estilo SPSS que es el más utilizado en todos los sitios. En teoría solo se debe hacer que con variables de tipo numérico. Barbwin 7 admite categoría y múltiple. Añado al final un espacio para las múltiples.

https://rdrr.io/cran/expss/man/fre.html

pacman::p_load(kableExtra,expss)
data <- read_spss("data/ejemplogbw8.sav")

7.1.1 Sin peso

options(expss.fre_stat_lab = c("Casos", "Valido porcentaje", "Porcentaje","Respuestas %", "Acumulado %"),digits=3)
fre.result <- fre(unvl(data$P16))
kable(fre.result)
Gasto medio por persona realizado en ’ € (Euros) Casos Valido porcentaje Porcentaje Respuestas % Acumulado %
304.21 4 1.51 1.04 1.51 1.51
306.01 8 3.03 2.08 3.03 4.54
307.51 4 1.51 1.04 1.51 6.06
312.02 44 16.67 11.46 16.67 22.73
315.03 9 3.41 2.34 3.41 26.14
318.03 24 9.09 6.25 9.09 35.23
324.04 4 1.51 1.04 1.51 36.74
327.05 8 3.03 2.08 3.03 39.77
330.06 33 12.50 8.59 12.50 52.27
336.07 8 3.03 2.08 3.03 55.30
342.08 20 7.58 5.21 7.58 62.88
348.09 4 1.51 1.04 1.51 64.39
360.11 20 7.58 5.21 7.58 71.97
384.15 4 1.51 1.04 1.51 73.48
390.17 8 3.03 2.08 3.03 76.52
420.22 16 6.06 4.17 6.06 82.58
450.28 11 4.17 2.87 4.17 86.74
480.33 12 4.54 3.12 4.54 91.29
600.55 4 1.51 1.04 1.51 92.80
630.61 7 2.65 1.82 2.65 95.45
660.66 4 1.51 1.04 1.51 96.97
720.77 4 1.51 1.04 1.51 98.48
780.88 4 1.51 1.04 1.51 100.00
#Total 264 100.00 68.75 100.00 NA
120 NA 31.25 NA NA

7.1.2 Con peso

options(expss.fre_stat_lab = c("Casos", "Valido porcentaje", "Porcentaje","Respuestas %", "Acumulado %"), digits=3)
fre.result <- fre(unlab(data$P16),weight=data$P15)
colnames(fre.result) <- c('P16',colnames(fre.result)[-1])
kable(fre.result)
P16 Casos Valido porcentaje Porcentaje Respuestas % Acumulado %
304.21 4 0.452 0.452 0.452 0.452
306.01 24 2.715 2.715 2.715 3.167
307.51 8 0.905 0.905 0.905 4.072
312.02 88 9.955 9.955 9.955 14.027
315.03 34 3.846 3.846 3.846 17.873
318.03 72 8.145 8.145 8.145 26.018
324.04 12 1.357 1.357 1.357 27.376
327.05 28 3.167 3.167 3.167 30.543
330.06 124 14.027 14.027 14.027 44.570
336.07 28 3.167 3.167 3.167 47.738
342.08 72 8.145 8.145 8.145 55.882
348.09 16 1.810 1.810 1.810 57.692
360.11 80 9.050 9.050 9.050 66.742
384.15 12 1.357 1.357 1.357 68.100
390.17 40 4.525 4.525 4.525 72.624
420.22 56 6.335 6.335 6.335 78.959
450.28 30 3.394 3.394 3.394 82.353
480.33 64 7.240 7.240 7.240 89.593
600.55 16 1.810 1.810 1.810 91.403
630.61 28 3.167 3.167 3.167 94.570
660.66 16 1.810 1.810 1.810 96.380
720.77 16 1.810 1.810 1.810 98.190
780.88 16 1.810 1.810 1.810 100.000
#Total 884 100.000 100.000 100.000 NA
0 NA 0.000 NA NA

7.2 Nueva opción

Con esta misma función podemos hacer que si la variable está codificada y tiene etiquetas, que nos ofrezca la misma información pero con las etiquetas (vendría a ser como un marginal).

7.2.1 Sin peso

options(expss.fre_stat_lab = c("Casos", "Valido porcentaje", "Porcentaje","Respuestas %", "Acumulado %"), digits=3)
fre.result <- fre(data$EDAD)
kable(fre.result)
data$EDAD Casos Valido porcentaje Porcentaje Respuestas % Acumulado %
-25 124 32.3 32.3 32.3 32.3
-35 104 27.1 27.1 27.1 59.4
-45 64 16.7 16.7 16.7 76.0
-55 40 10.4 10.4 10.4 86.5
+55 52 13.5 13.5 13.5 100.0
#Total 384 100.0 100.0 100.0 NA
0 NA 0.0 NA NA

7.2.2 Con peso

options(expss.fre_stat_lab = c("Casos", "Valido porcentaje", "Porcentaje","Respuestas %", "Acumulado %"), digits=3)
fre.result <- fre(data$EDAD, weight = data$P15)
kable(fre.result)
data$EDAD Casos Valido porcentaje Porcentaje Respuestas % Acumulado %
-25 312 35.29 35.29 35.29 35.3
-35 216 24.43 24.43 24.43 59.7
-45 204 23.08 23.08 23.08 82.8
-55 104 11.76 11.76 11.76 94.6
+55 48 5.43 5.43 5.43 100.0
#Total 884 100.00 100.00 100.00 NA
0 NA 0.00 NA NA

7.3 Recuento con múltiples

7.3.1 Sin peso

Uso el split = 3 que yo tengo en mi SPSS data.

Si se hiciera split = 1, creo que hay que cambiar mrset() por mdset() y quitar el unvr() para que pueda leer los textos extra., es decir quedaría como tab_cells(mdset_('P10_')) en caso de que fuera split=1.

fre.result <- data %>%
     tab_cols(total()) %>%
     tab_cells(unvr(mrset_p('P10_'))) %>%
     tab_stat_cases(label='Casos') %>%
     tab_stat_cpct(label = '%') %>% 
     tab_pivot(stat_position = 'inside_columns') 
colnames(fre.result) <- c('Valor', 'Casos', '%')     
kable(fre.result)
Valor Casos %
Modelo 1 52 13.54
Modelo 2 44 11.46
Modelo 3 200 52.08
Modelo 4 40 10.42
Modelo 5 124 32.29
Modelo 6 24 6.25
Modelo 7 48 12.50
Modelo 9 16 4.17
Modelo 8 16 4.17
Modelo 10 8 2.08
Modelo 11 132 34.38
12 36 9.38
#Total cases 384 384.00

7.3.2 Con peso

fre.result <- data %>%
     tab_weight(P15) %>% 
     tab_cols(total()) %>%
     tab_cells(unvr(mrset_p('P10_'))) %>%
     tab_stat_cases(label='Casos') %>%
     tab_stat_cpct(label = '%') %>% 
     tab_pivot(stat_position = 'inside_columns') 
colnames(fre.result) <- c('Valor', 'Casos', '%')     
kable(fre.result)
Valor Casos %
Modelo 1 108 12.22
Modelo 2 80 9.05
Modelo 3 484 54.75
Modelo 4 52 5.88
Modelo 5 268 30.32
Modelo 6 92 10.41
Modelo 7 100 11.31
Modelo 9 68 7.69
Modelo 8 44 4.98
Modelo 10 NA NA
Modelo 11 376 42.53
12 40 4.53
#Total cases 264 264.00