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" )
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)
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
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)
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
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).
Sin peso
options (expss.fre_stat_lab = c ("Casos" , "Valido porcentaje" , "Porcentaje" ,"Respuestas %" , "Acumulado %" ), digits= 3 )
fre.result <- fre (data$ EDAD)
kable (fre.result)
-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
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)
-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
Recuento con múltiples
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)
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
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)
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