Package 'DemographicTable'

Title: Creating Demographic Table
Description: Functions for creating demographic table of simple summary statistics and comparison(s) over one or more groups. Returned value is printed via package 'flextable'.
Authors: Tingting Zhan [aut, cre, cph]
Maintainer: Tingting Zhan <[email protected]>
License: GPL-2
Version: 0.1.10
Built: 2025-02-18 06:43:43 UTC
Source: https://github.com/cran/DemographicTable

Help Index


Create Demographic Table

Description

Functions for creating demographic table with simple summary statistics, with optional comparison(s) over one or more groups. Numeric variables are summarized in means, standard deviations, medians, inter-quartile-ranges (IQR), skewness, Shapiro-Wilk normality test and ranges, and compared using two-sample tt-test, Wilcoxon test, ANOVA and/or Kruskal-Wallis test. Logical and factor variables are summarized in counts and percentages and compared using chi-squared test and/or Fisher's exact test.

Returned value is printed via package flextable.

Author(s)

Maintainer: Tingting Zhan [email protected] (ORCID) [copyright holder]


Create Demographic Table

Description

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

Usage

DemographicTable(
  data,
  data.name = substitute(data),
  groups = NULL,
  exclude = NULL,
  exclude_rx,
  include,
  include_rx,
  paired = FALSE,
  robust = TRUE,
  overall = TRUE,
  compare = TRUE,
  pairwise = 3L,
  ...
)

Arguments

data

a data.frame

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 provided. Default NULL indicating no sub-groups.

exclude

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

exclude_rx

(optional) regex, 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 included.

include_rx

(optional) regex, 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.

...

additional parameters, currently not in use

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, pp-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 is a list of matrix-es.

Examples

tgr = within(ToothGrowth, expr = { dose = factor(dose) })
DemographicTable(tgr, include = c('supp', 'len', 'dose'))
DemographicTable(tgr, groups = 'supp', include = c('len', 'dose'))
DemographicTable(tgr, groups = 'supp', include = 'len', paired = TRUE)
DemographicTable(tgr, groups = 'supp', include = 'len', compare = FALSE)
DemographicTable(tgr, groups = c('supp', 'dose'), include = 'len')

(tb1 = DemographicTable(CO2, groups = 'Type', include = c('conc', 'uptake')))
CO2_nonchilled = subset(CO2, Treatment == 'nonchilled')
(tb2 = DemographicTable(CO2_nonchilled, groups = 'Type', include = c('conc', 'uptake')))
c(tb1, tb2)

# pairwise comparision
DemographicTable(MASS::survey, groups = 'Fold')

# missing value in `groups`
DemographicTable(MASS::survey, groups = c('M.I'))