Learn R Programming

reporttools (version 1.1.3)

tableNominal: Display descriptive statistics for nominal variables

Description

Many data analyses start with a display of descriptive statistics of important variables. This function takes a data frame of nominal variables and possible grouping (such as e.g. treatment), weighting, and subset variables and provides a LaTeX table of descriptive statistics separately per group and jointly for all observations, per variable.

Usage

tableNominal(vars, weights = NA, subset = NA, 
    group = NA, miss.cat = NA, print.pval = c("none", "fisher", 
    "chi2"), pval.bound = 10^-4, fisher.B = 2000, vertical = TRUE, 
    cap = "", lab = "", col.tit.font = c("bf", "", "sf", "it", "rm"), 
    font.size = "footnotesize", longtable = TRUE, nams = NA, 
    cumsum = TRUE, ...)

Arguments

vars

A data frame of nominal variables. See nams for an alternative way of specifying the variables to be displayed.

weights

Optional vector of weights of each observation.

subset

Optional logical vector, indicates subset of observations to be used.

group

Optional grouping variable.

miss.cat

Vector specifying the factors in vars that should have their NAs transformed to a separate category.

print.pval

Add \(p\)-values of Fisher's exact or \(\chi^2\) test for a difference of distributions between groups to the table, if there is more than one group. Note that by default, any missing values are removed for computation of \(p\)-values. If missings should be considered a separate level, define the input variables accordingly.

pval.bound

\(p\)-values below pval.bound are formatted as < pval.bound.

fisher.B

Number of simulations to compute \(p\)-value for Fisher's exact test. Note that in the function fisher.test the option simulate.p.value is set to TRUE, unless fisher.B == Inf which asks for the exact computation.

vertical

If TRUE, add vertical lines to the table, separating labels and groups, if applicable.

cap

The caption of the resulting LaTeX table.

lab

The label of the resulting LaTeX table.

col.tit.font

Choose the font for the column titles here (default: boldface).

font.size

Font size for the generated table in LaTeX.

longtable

If TRUE, function makes use of package longtable in LaTex to generate tables that span more than one page. If FALSE, generates a table in tabular environment.

nams

A vector of strings, containing the names corresponding to the variables in vars, if vars is not a data frame but a list of variables. These are then the names that appear in the LaTeX table. This option is only kept for backward compatibility.

cumsum

If TRUE, the cumulative sums of the percentages are included for every level of the grouping variable.

...

Arguments pass through to print.xtable.

Value

Outputs the LaTeX table.

Warning

If either one of the arguments group, weights, or subset is different from NA and if vars is a list, then it is assumed that all variables in vars are of equal length.

References

Rufibach, K. (2009) reporttools: R-Functions to Generate LaTeX Tables of Descriptive Statistics. Journal of Statistical Software, Code Snippets, 31(1). https://doi.org/10.18637/jss.v031.c01.

Examples

Run this code
# NOT RUN {
data(CO2)
vars <- CO2[, 1:2]
group <- CO2[, "Treatment"]
weights <- c(rep(1, 60), rep(0, 10), rep(2, 14))
     
## first all observations
tableNominal(vars = vars, weights = weights, group = group, cap = 
    "Table of nominal variables.", lab = "tab: nominal")

## do not include cumulative percentages
tableNominal(vars = vars, weights = weights, group = group, cap = 
    "Table of nominal variables.", lab = "tab: nominal", cumsum = FALSE)

## but include p-value for Fisher's exact test
tableNominal(vars = vars, weights = weights, group = group, cap = 
    "Table of nominal variables.", lab = "tab: nominal",
    print.pval = "fisher", cumsum = FALSE)     

## Fisher's exact test without simulated p-value
tableNominal(vars = vars, weights = weights, group = group, cap = 
    "Table of nominal variables.", lab = "tab: nominal",
    print.pval = "fisher", fisher.B = Inf, cumsum = FALSE)     

## then only consider a subset of observations
subset <- c(1:50, 60:70)
tableNominal(vars = vars, weights = weights, subset = subset, group = group, 
    cap = "Table of nominal variables.", lab = "tab: nominal")

## do not include cumulative percentages
tableNominal(vars = vars, weights = weights, subset = subset, group = group, 
    cap = "Table of nominal variables.", lab = "tab: nominal", cumsum = FALSE)     

# }
# NOT RUN {
## caption placement at the top and repeat column headings on top of each page
## in the longtable format. Have to manually add another backslash to hline and endhead
## below (they are removed when compiling the help file)!
tableNominal(vars = vars, cap = "Table of nominal variables.", cumsum = FALSE, 
caption.placement = "top", longtable = TRUE, add.to.row = list(pos = list(0), 
command = "\hline \endhead ")
# }

Run the code above in your browser using DataLab