library(DemographicTable)
library(flextable)
set_flextable_defaults(font.size = 9)
The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
This vignette of package DemographicTable
(CRAN, Github) presents an idiot-proof interface to create a summary table of simple statistics, often known as a demographic table.
Examples in this vignette require that the search
path has
library(DemographicTable)
library(flextable)
set_flextable_defaults(font.size = 9)
Users may remove the last pipe |> as_flextable()
from all examples. This is required in the vignette to make quarto
rendering work.
Data preparation
= ToothGrowth |>
tgr within.data.frame(expr = {
= factor(dose)
dose })
|>
tgr DemographicTable(include = c('supp', 'len', 'dose')) |>
as_flextable()
| tgr |
---|---|
n=60 | |
len. |
|
dose: n (%). |
|
supp: n (%). |
|
| n=60 |
tgr |
group
Color of each individual group
is determined by scales::pal_hue()
, which is the default color pallete used in package ggplot2
.
|>
tgr DemographicTable(groups = 'supp', include = c('len', 'dose')) |>
as_flextable()
| tgr | |||
---|---|---|---|---|
n=60 | supp | |||
OJ | VC | Signif | ||
len. |
|
|
| 0.064 |
dose: n (%). |
|
|
| 1.000 |
| n=60 | supp | ||
tgr |
User may choose to hide the p-values with option compare = FALSE
.
|>
tgr DemographicTable(groups = 'supp', include = c('len', 'dose'), compare = FALSE) |>
as_flextable()
| tgr | ||
---|---|---|---|
n=60 | supp | ||
OJ | VC | ||
len. |
|
|
|
dose: n (%). |
|
|
|
| n=60 | supp | |
tgr |
groups
|>
tgr DemographicTable(groups = c('supp', 'dose'), include = c('len', 'supp')) |>
as_flextable()
| tgr | |||||||
---|---|---|---|---|---|---|---|---|
n=60 | supp | dose | ||||||
OJ | VC | Signif1 | 0.5 | 1 | 2 | Signif2 | ||
len. |
|
|
| 0.064 |
|
|
| ★ 0.000; ⸢1⸥ vs. ⸢0.5⸥ |
supp: n (%). |
|
|
| ★ 0.000 |
|
|
| 1.000 |
| n=60 | supp | dose | |||||
tgr |
DemographicTable
s= CO2 |>
tb1 DemographicTable(groups = 'Type', include = c('conc', 'uptake'))
= CO2 |>
tb2 subset(subset = (Treatment == 'nonchilled')) |>
DemographicTable(groups = 'Type', include = c('conc', 'uptake'), data.name = 'CO2_nonchilled')
c(tb1, tb2) |> as_flextable()
| CO2 | CO2_nonchilled | ||||||
---|---|---|---|---|---|---|---|---|
n=84 | Type | n=42 | Type | |||||
Quebec | Mississippi | Signif1 | Quebec | Mississippi | Signif2 | |||
conc. |
|
|
| 1.000 |
|
|
| 1.000 |
uptake. |
|
|
| 0.000★ |
|
|
| 0.000★ |
| n=84 | Type | n=42 | Type | ||||
CO2 | CO2_nonchilled |
groups
::survey |>
MASSDemographicTable(groups = c('M.I'), include = c('Pulse', 'Fold')) |>
as_flextable()
| MASS::survey | |||
---|---|---|---|---|
n=237 | M.I | |||
Imperial | Metric | Signif | ||
Pulse. | n*=192 | n*=59 | n*=112 | 0.974 |
Fold: n (%). |
|
|
| 0.532 |
| n=237 | M.I | ||
MASS::survey |
logical
valuesUsing logical
values is discouraged, as this practice is proved confusing to scientists without a strong data background.
= mtcars |>
mtc within.data.frame(expr = {
= as.logical(vs)
vs_straight = as.logical(am)
am_manual })
A warning message will be printed if logical
variables are used in groups
and/or include
.
tryCatch(DemographicTable(mtc, groups = 'am_manual', include = c('drat', 'vs_straight')), warning = identity)
<simpleWarning in DemographicTable(mtc, groups = "am_manual", include = c("drat", "vs_straight")):
Some scientists do not understand logical value (e.g., arm_intervention being TRUE/FALSE)
Consider using 2-level factor (e.g., arm being intervention/control)>
Instead of using logical
variables
|>
mtc DemographicTable(groups = 'am_manual', include = c('drat', 'vs_straight')) |>
as_flextable() |>
suppressWarnings()
| mtc | |||
---|---|---|---|---|
n=32 | am_manual | |||
FALSE | TRUE | Signif | ||
drat. |
|
|
| 0.000★ |
vs_straight: n (%) | 14 (43.8%) | 7 (36.8%) | 7 (53.8%) | 0.556 |
| n=32 | am_manual | ||
mtc |
We recommend using 2-level
factor
s.
|>
mtcars within.data.frame(expr = {
= ifelse(vs, yes = 'Straight', no = 'V-shaped')
vs = ifelse(am, yes = 'manual', no = 'automatic')
am |>
}) DemographicTable(groups = 'am', include = c('drat', 'vs'), data.name = 'mtcars') |>
as_flextable()
| mtcars | |||
---|---|---|---|---|
n=32 | am | |||
automatic | manual | Signif | ||
drat. |
|
|
| 0.000★ |
vs: n (%). |
|
|
| 0.473 |
| n=32 | am | ||
mtcars |
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.