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%)

tab <- width(tab, j=2:3, width=2)
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%)

3.3 Exporting tables

  • Exporting to a word file
save_as_docx(tab, path="table1.docx")