This document uses theme rmarkdown::html_vignette
.
Below are examples using recommended styles for Rmarkdown rendering. Available styles in summarytools are the same as pander
’s:
For freq()
, descr()
(and ctable()
, although with caveats), rmarkdown style is recommended. For dfSummary()
, grid is recommended.
knitr
option results = 'asis'
must be specified to get good results. This can be done globally via opts_chunk$set(results='asis')
, or in the individual chunks.
The following summarytools global options have been set:
To generate tables using summarytool’s own html rendering, the .Rmd document’s configuration part (yaml) must point to the package’s summarytools.css
file. This can be achieved in several ways; the current vignette uses this configuration:
output:
rmarkdown::html_vignette:
css:
- !expr system.file("rmarkdown/templates/html_vignette/resources/vignette.css", package = "rmarkdown")
- !expr system.file("includes/stylesheets/summarytools.css", package = "summarytools")
An alternative is to point to the directory on your system containing summarytools.css:
---
title: "RMarkdown using summarytools"
output:
html_document:
css: C:/R/win-library/3.4/summarytools/includes/stylesheets/summarytools.css
---
Starting with freq()
, we’ll review the recommended methods and styles to get going with summarytools in Rmarkdown documents.
Jump to…
freq()
is best used with `style = ‘rmarkdown’; html rendering is also possible.
Variable: tobacco$gender
Type: Factor (unordered)
Freq | % Valid | % Valid Cum. | % Total | % Total Cum. | |
---|---|---|---|---|---|
F | 489 | 50.00 | 50.00 | 48.90 | 48.90 |
M | 489 | 50.00 | 100.00 | 48.90 | 97.80 |
<NA> | 22 | 2.20 | 100.00 | ||
Total | 1000 | 100.00 | 100.00 | 100.00 | 100.00 |
Valid | Total | ||||
---|---|---|---|---|---|
gender | Freq | % | % Cumul | % | % Cumul |
F | 489 | 50.00 | 50.00 | 48.90 | 48.90 |
M | 489 | 50.00 | 100.00 | 48.90 | 97.80 |
<NA> | 22 | 2.20 | 100.00 | ||
Total | 1000 | 100.00 | 100.00 | 100.00 | 100.00 |
If you find the table too large, you can use table.classes = 'st-small'
- an example is provided further below.
Tables with heading spanning over 2 rows are not fully supported in markdown (yet), but the result is getting close to acceptable.
Variables: gender * smoker
Data Frame: tobacco
smoker | Yes | No | Total | |
gender | ||||
F | 147 (30.06%) | 342 (69.94%) | 489 (100.00%) | |
M | 143 (29.24%) | 346 (70.76%) | 489 (100.00%) | |
<NA> | 8 (36.36%) | 14 (63.64%) | 22 (100.00%) | |
Total | 298 (29.80%) | 702 (70.20%) | 1000 (100.00%) |
For best results, use this method.
smoker | |||
---|---|---|---|
gender | Yes | No | Total |
F | 147 (30.06%) | 342 (69.94%) | 489 (100.00%) |
M | 143 (29.24%) | 346 (70.76%) | 489 (100.00%) |
<NA> | 8 (36.36%) | 14 (63.64%) | 22 (100.00%) |
Total | 298 (29.80%) | 702 (70.20%) | 1000 (100.00%) |
descr()
is also best used with style = 'rmarkdown'
, and HTML rendering is also supported.
Non-numerical variable(s) ignored: gender, age.gr, smoker, diseased, disease
Data Frame: tobacco
N: 1000
age | BMI | cigs.per.day | samp.wgts | |
---|---|---|---|---|
Mean | 49.60 | 25.73 | 6.78 | 1.00 |
Std.Dev | 18.29 | 4.49 | 11.88 | 0.08 |
Min | 18.00 | 8.83 | 0.00 | 0.86 |
Q1 | 34.00 | 22.93 | 0.00 | 0.86 |
Median | 50.00 | 25.62 | 0.00 | 1.04 |
Q3 | 66.00 | 28.65 | 11.00 | 1.05 |
Max | 80.00 | 39.44 | 40.00 | 1.06 |
MAD | 23.72 | 4.18 | 0.00 | 0.01 |
IQR | 32.00 | 5.72 | 11.00 | 0.19 |
CV | 0.37 | 0.17 | 1.75 | 0.08 |
Skewness | -0.04 | 0.02 | 1.54 | -1.04 |
SE.Skewness | 0.08 | 0.08 | 0.08 | 0.08 |
Kurtosis | -1.26 | 0.26 | 0.90 | -0.90 |
N.Valid | 975.00 | 974.00 | 965.00 | 1000.00 |
Pct.Valid | 97.50 | 97.40 | 96.50 | 100.00 |
We’ll use table.classes = ‘st-small’ to show how it affects the table’s size (compare to the freq()
table rendered earlier).
Non-numerical variable(s) ignored: gender, age.gr, smoker, diseased, disease
age | BMI | cigs.per.day | samp.wgts | |
---|---|---|---|---|
Mean | 49.60 | 25.73 | 6.78 | 1.00 |
Std.Dev | 18.29 | 4.49 | 11.88 | 0.08 |
Min | 18.00 | 8.83 | 0.00 | 0.86 |
Q1 | 34.00 | 22.93 | 0.00 | 0.86 |
Median | 50.00 | 25.62 | 0.00 | 1.04 |
Q3 | 66.00 | 28.65 | 11.00 | 1.05 |
Max | 80.00 | 39.44 | 40.00 | 1.06 |
MAD | 23.72 | 4.18 | 0.00 | 0.01 |
IQR | 32.00 | 5.72 | 11.00 | 0.19 |
CV | 0.37 | 0.17 | 1.75 | 0.08 |
Skewness | -0.04 | 0.02 | 1.54 | -1.04 |
SE.Skewness | 0.08 | 0.08 | 0.08 | 0.08 |
Kurtosis | -1.26 | 0.26 | 0.90 | -0.90 |
N.Valid | 975 | 974 | 965 | 1000 |
Pct.Valid | 97.50 | 97.40 | 96.50 | 100.00 |
This gives good results, although the histograms are not shown. This has to do with an unresolved issue, but we’re working hard to figure out a solution. Don’t forget to specify plain.ascii = FALSE
, or you won’t get good results.
tobacco
N: 1000
No | Variable | Stats / Values | Freqs (% of Valid) | Text Graph | Valid | Missing |
---|---|---|---|---|---|---|
1 | gender [factor] |
1. F 2. M |
489 (50.0%) 489 (50.0%) |
IIIIIIIIIIIIIIII IIIIIIIIIIIIIIII |
978 (97.8%) |
22 (2.2%) |
2 | age [numeric] |
mean (sd) : 49.6 (18.29) min < med < max : 18 < 50 < 80 IQR (CV) : 32 (0.37) |
63 distinct values | 975 (97.5%) |
25 (2.5%) |
|
3 | age.gr [factor] |
1. 18-34 2. 35-50 3. 51-70 4. 71 + |
258 (26.5%) 241 (24.7%) 317 (32.5%) 159 (16.3%) |
IIIIIIIIIIIII IIIIIIIIIIII IIIIIIIIIIIIIIII IIIIIIII |
975 (97.5%) |
25 (2.5%) |
4 | BMI [numeric] |
mean (sd) : 25.73 (4.49) min < med < max : 8.83 < 25.62 < 39.44 IQR (CV) : 5.72 (0.17) |
974 distinct values | 974 (97.4%) |
26 (2.6%) |
|
5 | smoker [factor] |
1. Yes 2. No |
298 (29.8%) 702 (70.2%) |
IIIIII IIIIIIIIIIIIIIII |
1000 (100%) |
0 (0%) |
6 | cigs.per.day [numeric] |
mean (sd) : 6.78 (11.88) min < med < max : 0 < 0 < 40 IQR (CV) : 11 (1.75) |
37 distinct values | 965 (96.5%) |
35 (3.5%) |
|
7 | diseased [factor] |
1. Yes 2. No |
224 (22.4%) 776 (77.6%) |
IIII IIIIIIIIIIIIIIII |
1000 (100%) |
0 (0%) |
8 | disease [character] |
1. Hypertension 2. Cancer 3. Cholesterol 4. Heart 5. Pulmonary 6. Musculoskeletal 7. Diabetes 8. Hearing 9. Digestive 10. Hypotension [ 3 others ] |
36 (16.2%) 34 (15.3%) 21 ( 9.5%) 20 ( 9.0%) 20 ( 9.0%) 19 ( 8.6%) 14 ( 6.3%) 14 ( 6.3%) 12 ( 5.4%) 11 ( 5.0%) 21 ( 9.5%) |
IIIIIIIIIIIIIIII IIIIIIIIIIIIIII IIIIIIIII IIIIIIII IIIIIIII IIIIIIII IIIIII IIIIII IIIII IIII IIIIIIIII |
222 (22.2%) |
778 (77.8%) |
9 | samp.wgts [numeric] |
mean (sd) : 1 (0.08) min < med < max : 0.86 < 1.04 < 1.06 IQR (CV) : 0.19 (0.08) |
0.86!: 267 (26.7%) 1.04!: 249 (24.9%) 1.05!: 324 (32.4%) 1.06!: 160 (16.0%) ! rounded |
IIIIIIIIIIIII IIIIIIIIIIII IIIIIIIIIIIIIIII IIIIIII |
1000 (100%) |
0 (0%) |
Although the results are not as neat as they are when simply generating an html report from the R interpreter – the transparency of the graphs is lost in translation –, this is the best method still.
No | Variable | Stats / Values | Freqs (% of Valid) | Graph | Valid | Missing |
---|---|---|---|---|---|---|
1 | gender [factor] | 1. F 2. M | 489 (50.0%) 489 (50.0%) | 978 (97.8%) | 22 (2.2%) | |
2 | age [numeric] | mean (sd) : 49.6 (18.29) min < med < max : 18 < 50 < 80 IQR (CV) : 32 (0.37) | 63 distinct values | 975 (97.5%) | 25 (2.5%) | |
3 | age.gr [factor] | 1. 18-34 2. 35-50 3. 51-70 4. 71 + | 258 (26.5%) 241 (24.7%) 317 (32.5%) 159 (16.3%) | 975 (97.5%) | 25 (2.5%) | |
4 | BMI [numeric] | mean (sd) : 25.73 (4.49) min < med < max : 8.83 < 25.62 < 39.44 IQR (CV) : 5.72 (0.17) | 974 distinct values | 974 (97.4%) | 26 (2.6%) | |
5 | smoker [factor] | 1. Yes 2. No | 298 (29.8%) 702 (70.2%) | 1000 (100%) | 0 (0%) | |
6 | cigs.per.day [numeric] | mean (sd) : 6.78 (11.88) min < med < max : 0 < 0 < 40 IQR (CV) : 11 (1.75) | 37 distinct values | 965 (96.5%) | 35 (3.5%) | |
7 | diseased [factor] | 1. Yes 2. No | 224 (22.4%) 776 (77.6%) | 1000 (100%) | 0 (0%) | |
8 | disease [character] | 1. Hypertension 2. Cancer 3. Cholesterol 4. Heart 5. Pulmonary 6. Musculoskeletal 7. Diabetes 8. Hearing 9. Digestive 10. Hypotension [ 3 others ] | 36 (16.2%) 34 (15.3%) 21 (9.5%) 20 (9.0%) 20 (9.0%) 19 (8.6%) 14 (6.3%) 14 (6.3%) 12 (5.4%) 11 (5.0%) 21 (9.5%) | 222 (22.2%) | 778 (77.8%) | |
9 | samp.wgts [numeric] | mean (sd) : 1 (0.08) min < med < max : 0.86 < 1.04 < 1.06 IQR (CV) : 0.19 (0.08) | 0.86! : 267 (26.7%) 1.04! : 249 (24.9%) 1.05! : 324 (32.4%) 1.06! : 160 (16.0%) ! rounded | 1000 (100%) | 0 (0%) |