3 crosstable - Extracting the basic statistics
library(crosstable)
crosstable(mtcars)
## # A tibble: 40 × 4
## .id label variable value
## <chr> <chr> <chr> <chr>
## 1 mpg mpg Min / Max 10.4 / 33.9
## 2 mpg mpg Med [IQR] 19.2 [15.4;22.8]
## 3 mpg mpg Mean (std) 20.1 (6.0)
## 4 mpg mpg N (NA) 32 (0)
## 5 cyl cyl 4 11 (34.38%)
## 6 cyl cyl 6 7 (21.88%)
## 7 cyl cyl 8 14 (43.75%)
## 8 disp disp Min / Max 71.1 / 472.0
## 9 disp disp Med [IQR] 196.3 [120.8;326.0]
## 10 disp disp Mean (std) 230.7 (123.9)
## # ℹ 30 more rows
3.1 crosstable + flextable
library(crosstable)
library(flextable)
tab <- crosstable(mtcars, c(mpg, cyl))
tab <- flextable(tab)
tab
.id | label | variable | value |
---|---|---|---|
mpg | mpg | Min / Max | 10.4 / 33.9 |
mpg | mpg | Med [IQR] | 19.2 [15.4;22.8] |
mpg | mpg | Mean (std) | 20.1 (6.0) |
mpg | mpg | N (NA) | 32 (0) |
cyl | cyl | 4 | 11 (34.38%) |
cyl | cyl | 6 | 7 (21.88%) |
cyl | cyl | 8 | 14 (43.75%) |
3.2 Making some improvements
tab <- crosstable(mtcars, c(mpg, cyl))
tab <- flextable(tab, col_keys=c("label", "variable", "value"))
tab <- merge_v(tab, j="label")
tab <- flextable::align(tab, part="all", align="center")
tab <- mk_par(tab, j=1, value=as_paragraph(as_chunk("Variable")), part="header")
tab <- mk_par(tab, j=2, value=as_paragraph(as_chunk("Statistic")), part="header")
tab <- mk_par(tab, j=3, value=as_paragraph(as_chunk("Result")), part="header")
tab
Variable | Statistic | Result |
---|---|---|
mpg | Min / Max | 10.4 / 33.9 |
Med [IQR] | 19.2 [15.4;22.8] | |
Mean (std) | 20.1 (6.0) | |
N (NA) | 32 (0) | |
cyl | 4 | 11 (34.38%) |
6 | 7 (21.88%) | |
8 | 14 (43.75%) |
Variable | Statistic | Result |
---|---|---|
mpg | Min / Max | 10.4 / 33.9 |
Med [IQR] | 19.2 [15.4;22.8] | |
Mean (std) | 20.1 (6.0) | |
N (NA) | 32 (0) | |
cyl | 4 | 11 (34.38%) |
6 | 7 (21.88%) | |
8 | 14 (43.75%) |