DemographicTable {DemographicTable}R Documentation

Create Demographic Table

Description

Create a demographic table with simple summary statistics, with optional comparison(s) over one or more groups.

Usage

DemographicTable(data, ...)

## S3 method for class 'data.frame'
DemographicTable(
  data,
  data.name = substitute(data),
  groups = NULL,
  keep_missing_group = TRUE,
  exclude = NULL,
  exclude_pattern,
  include,
  include_pattern,
  paired = FALSE,
  robust = TRUE,
  overall = TRUE,
  compare = TRUE,
  pairwise = 3L,
  ...
)

Arguments

data

a data.frame

...

additional parameters, currently not in use

data.name

character scalar, or the argument call of data. A user-friendly name of the input data.

groups

character scalar or vector, the name(s) of sub-group(s) for which the summary statistics are to be provided. Default NULL indicating no sub-groups.

keep_missing_group

logical scalar. If TRUE (default), the subjects with missing group are put into a new group ('.missing'). if FALSE, these subjects are removed from group-wise summary statistics.

exclude

character vector, the name(s) of variable(s) to be excluded. Default NULL indicating no variable are to be excluded.

exclude_pattern

(optional) character scalar as regex (regular expression), the pattern of the names of the variable(s) to be excluded.

include

character vector, the name(s) of variable(s) to be included. Default names(data) indicating all variables are to be included.

include_pattern

(optional) character scalar as regex (regular expression), the pattern of the names of the variable(s) to be included.

paired

logical scalar, whether to perform paired test (default FALSE)

robust

logical scalar. If TRUE (default), use non-parametric methods for non-normally distributed numeric variables.

overall

logical scalar. If TRUE (default), a column of overall summary statistics will be provided.

compare

logical scalar. If TRUE (default), comparisons between group(s) will be made.

pairwise

integer scalar, minimum number of groups where pairwise comparisons need to be performed. Default 3L.

Details

A demographic table with simple summary statistics, with optional comparison(s) over one or more groups, is created.

numeric variables are summarized in means, standard deviations, medians, inter-quartile-ranges (IQR), skewness, p-value of Shapiro-Wilk normality test and ranges. If group is specified, they are compared using two-sample t.test, wilcox.test (Wilcoxon / Mann-Whitney), one-way aov (ANOVA) and/or kruskal.test (Kruskal-Wallis).

logical and factor variables are summarized in counts and percentages. If group is specified, they are compared using prop.test (chi-squared) and/or fisher.test (Fisher's exact).

Value

Function DemographicTable returns an object of S3 class 'DemographicTable', which inherits from matrix.

Examples

DemographicTable(esoph)
DemographicTable(ToothGrowth, groups = 'supp', include = 'len')
DemographicTable(ToothGrowth, groups = 'supp', include = 'len', paired = TRUE)
DemographicTable(ToothGrowth, groups = 'supp', include = 'len', compare = FALSE)
DemographicTable(warpbreaks, groups = c('wool', 'tension'))
DemographicTable(mtcars, groups = c('vs', 'am'), include = c('mpg', 'cyl', 'disp'))

# with missing value
DemographicTable(airquality, groups = 'Month', exclude = 'Day')
DemographicTable(MASS::survey, groups = 'Smoke', keep_missing_group = FALSE)
DemographicTable(MASS::survey, groups = 'Smoke', keep_missing_group = FALSE, useNA = 'always')

# write to Word file
library(flextable)
library(officer)
x = read_docx() |> body_add_flextable(value = as_flextable(DemographicTable(esoph)))
(out = file.path(tempdir(), 'demotable.docx'))
print(x, target = out)
# system(paste('open', out)) # works on Mac & Windows, but requires Microsoft Word
file.remove(out)


[Package DemographicTable version 0.1.7 Index]