I have a data frame that contains three categorical variables that I tabulated using the following code:
df = data_frame(merged$arrears, merged$mortgage_type, merged$occupancy)
apply(df, 2, table)
And it gave me the following list:
## $`merged$arrears`
##
## 0 1 2 3 4
## 52124 5523 2371 1538 27
##
## $`merged$mortgage_type`
##
## bullet erm linear
## 19958 17326 18181
##
## $`merged$occupancy`
##
## btl holiday home owner occupied
## 12296 27996 13112
How can I add the percentage of each category to the count in the tables of the list?
CodePudding user response:
Does the tabyl()
function from the janitor package solve your problem?
library(janitor)
#>
#> Attaching package: 'janitor'
#> The following objects are masked from 'package:stats':
#>
#> chisq.test, fisher.test
apply(mtcars, 2, table)
#> $mpg
#>
#> 10.4 13.3 14.3 14.7 15 15.2 15.5 15.8 16.4 17.3 17.8 18.1 18.7 19.2 19.7 21
#> 2 1 1 1 1 2 1 1 1 1 1 1 1 2 1 2
#> 21.4 21.5 22.8 24.4 26 27.3 30.4 32.4 33.9
#> 2 1 2 1 1 1 2 1 1
#>
#> $cyl
#>
#> 4 6 8
#> 11 7 14
#>
#> $disp
#>
#> 71.1 75.7 78.7 79 95.1 108 120.1 120.3 121 140.8 145 146.7 160
#> 1 1 1 1 1 1 1 1 1 1 1 1 2
#> 167.6 225 258 275.8 301 304 318 350 351 360 400 440 460
#> 2 1 1 3 1 1 1 1 1 2 1 1 1
#> 472
#> 1
#>
#> $hp
#>
#> 52 62 65 66 91 93 95 97 105 109 110 113 123 150 175 180 205 215 230 245
#> 1 1 1 2 1 1 1 1 1 1 3 1 2 2 3 3 1 1 1 2
#> 264 335
#> 1 1
#>
#> $drat
#>
#> 2.76 2.93 3 3.07 3.08 3.15 3.21 3.23 3.54 3.62 3.69 3.7 3.73 3.77 3.85 3.9
#> 2 1 1 3 2 2 1 1 1 1 1 1 1 1 1 2
#> 3.92 4.08 4.11 4.22 4.43 4.93
#> 3 2 1 2 1 1
#>
#> $wt
#>
#> 1.513 1.615 1.835 1.935 2.14 2.2 2.32 2.465 2.62 2.77 2.78 2.875 3.15
#> 1 1 1 1 1 1 1 1 1 1 1 1 1
#> 3.17 3.19 3.215 3.435 3.44 3.46 3.52 3.57 3.73 3.78 3.84 3.845 4.07
#> 1 1 1 1 3 1 1 2 1 1 1 1 1
#> 5.25 5.345 5.424
#> 1 1 1
#>
#> $qsec
#>
#> 14.5 14.6 15.41 15.5 15.84 16.46 16.7 16.87 16.9 17.02 17.05 17.3 17.4
#> 1 1 1 1 1 1 1 1 1 2 1 1 1
#> 17.42 17.6 17.82 17.98 18 18.3 18.52 18.6 18.61 18.9 19.44 19.47 19.9
#> 1 1 1 1 1 1 1 1 1 2 1 1 1
#> 20 20.01 20.22 22.9
#> 1 1 1 1
#>
#> $vs
#>
#> 0 1
#> 18 14
#>
#> $am
#>
#> 0 1
#> 19 13
#>
#> $gear
#>
#> 3 4 5
#> 15 12 5
#>
#> $carb
#>
#> 1 2 3 4 6 8
#> 7 10 3 10 1 1
apply(mtcars, 2, tabyl)
#> $mpg
#> newX[, i] n percent
#> 10.4 2 0.06250
#> 13.3 1 0.03125
#> 14.3 1 0.03125
#> 14.7 1 0.03125
#> 15.0 1 0.03125
#> 15.2 2 0.06250
#> 15.5 1 0.03125
#> 15.8 1 0.03125
#> 16.4 1 0.03125
#> 17.3 1 0.03125
#> 17.8 1 0.03125
#> 18.1 1 0.03125
#> 18.7 1 0.03125
#> 19.2 2 0.06250
#> 19.7 1 0.03125
#> 21.0 2 0.06250
#> 21.4 2 0.06250
#> 21.5 1 0.03125
#> 22.8 2 0.06250
#> 24.4 1 0.03125
#> 26.0 1 0.03125
#> 27.3 1 0.03125
#> 30.4 2 0.06250
#> 32.4 1 0.03125
#> 33.9 1 0.03125
#>
#> $cyl
#> newX[, i] n percent
#> 4 11 0.34375
#> 6 7 0.21875
#> 8 14 0.43750
#>
#> $disp
#> newX[, i] n percent
#> 71.1 1 0.03125
#> 75.7 1 0.03125
#> 78.7 1 0.03125
#> 79.0 1 0.03125
#> 95.1 1 0.03125
#> 108.0 1 0.03125
#> 120.1 1 0.03125
#> 120.3 1 0.03125
#> 121.0 1 0.03125
#> 140.8 1 0.03125
#> 145.0 1 0.03125
#> 146.7 1 0.03125
#> 160.0 2 0.06250
#> 167.6 2 0.06250
#> 225.0 1 0.03125
#> 258.0 1 0.03125
#> 275.8 3 0.09375
#> 301.0 1 0.03125
#> 304.0 1 0.03125
#> 318.0 1 0.03125
#> 350.0 1 0.03125
#> 351.0 1 0.03125
#> 360.0 2 0.06250
#> 400.0 1 0.03125
#> 440.0 1 0.03125
#> 460.0 1 0.03125
#> 472.0 1 0.03125
#>
#> $hp
#> newX[, i] n percent
#> 52 1 0.03125
#> 62 1 0.03125
#> 65 1 0.03125
#> 66 2 0.06250
#> 91 1 0.03125
#> 93 1 0.03125
#> 95 1 0.03125
#> 97 1 0.03125
#> 105 1 0.03125
#> 109 1 0.03125
#> 110 3 0.09375
#> 113 1 0.03125
#> 123 2 0.06250
#> 150 2 0.06250
#> 175 3 0.09375
#> 180 3 0.09375
#> 205 1 0.03125
#> 215 1 0.03125
#> 230 1 0.03125
#> 245 2 0.06250
#> 264 1 0.03125
#> 335 1 0.03125
#>
#> $drat
#> newX[, i] n percent
#> 2.76 2 0.06250
#> 2.93 1 0.03125
#> 3.00 1 0.03125
#> 3.07 3 0.09375
#> 3.08 2 0.06250
#> 3.15 2 0.06250
#> 3.21 1 0.03125
#> 3.23 1 0.03125
#> 3.54 1 0.03125
#> 3.62 1 0.03125
#> 3.69 1 0.03125
#> 3.70 1 0.03125
#> 3.73 1 0.03125
#> 3.77 1 0.03125
#> 3.85 1 0.03125
#> 3.90 2 0.06250
#> 3.92 3 0.09375
#> 4.08 2 0.06250
#> 4.11 1 0.03125
#> 4.22 2 0.06250
#> 4.43 1 0.03125
#> 4.93 1 0.03125
#>
#> $wt
#> newX[, i] n percent
#> 1.513 1 0.03125
#> 1.615 1 0.03125
#> 1.835 1 0.03125
#> 1.935 1 0.03125
#> 2.140 1 0.03125
#> 2.200 1 0.03125
#> 2.320 1 0.03125
#> 2.465 1 0.03125
#> 2.620 1 0.03125
#> 2.770 1 0.03125
#> 2.780 1 0.03125
#> 2.875 1 0.03125
#> 3.150 1 0.03125
#> 3.170 1 0.03125
#> 3.190 1 0.03125
#> 3.215 1 0.03125
#> 3.435 1 0.03125
#> 3.440 3 0.09375
#> 3.460 1 0.03125
#> 3.520 1 0.03125
#> 3.570 2 0.06250
#> 3.730 1 0.03125
#> 3.780 1 0.03125
#> 3.840 1 0.03125
#> 3.845 1 0.03125
#> 4.070 1 0.03125
#> 5.250 1 0.03125
#> 5.345 1 0.03125
#> 5.424 1 0.03125
#>
#> $qsec
#> newX[, i] n percent
#> 14.50 1 0.03125
#> 14.60 1 0.03125
#> 15.41 1 0.03125
#> 15.50 1 0.03125
#> 15.84 1 0.03125
#> 16.46 1 0.03125
#> 16.70 1 0.03125
#> 16.87 1 0.03125
#> 16.90 1 0.03125
#> 17.02 2 0.06250
#> 17.05 1 0.03125
#> 17.30 1 0.03125
#> 17.40 1 0.03125
#> 17.42 1 0.03125
#> 17.60 1 0.03125
#> 17.82 1 0.03125
#> 17.98 1 0.03125
#> 18.00 1 0.03125
#> 18.30 1 0.03125
#> 18.52 1 0.03125
#> 18.60 1 0.03125
#> 18.61 1 0.03125
#> 18.90 2 0.06250
#> 19.44 1 0.03125
#> 19.47 1 0.03125
#> 19.90 1 0.03125
#> 20.00 1 0.03125
#> 20.01 1 0.03125
#> 20.22 1 0.03125
#> 22.90 1 0.03125
#>
#> $vs
#> newX[, i] n percent
#> 0 18 0.5625
#> 1 14 0.4375
#>
#> $am
#> newX[, i] n percent
#> 0 19 0.59375
#> 1 13 0.40625
#>
#> $gear
#> newX[, i] n percent
#> 3 15 0.46875
#> 4 12 0.37500
#> 5 5 0.15625
#>
#> $carb
#> newX[, i] n percent
#> 1 7 0.21875
#> 2 10 0.31250
#> 3 3 0.09375
#> 4 10 0.31250
#> 6 1 0.03125
#> 8 1 0.03125
Created on 2022-06-19 by the reprex package (v2.0.1)