Learn R Programming

tab (version 2.1.3)

tabmeans: Generate Summary Tables of Mean Comparisons for Statistical Reports

Description

This function compares the mean of a continuous variable across levels of a categorical variable and summarizes the results in a clean table for a statistical report.

Usage

tabmeans(x, y, latex = FALSE, xlevels = NULL, yname = "Y variable", decimals = 1, 
         p.decimals = c(2, 3), p.cuts = 0.01, p.lowerbound = 0.001, p.leading0 = TRUE, 
         p.avoid1 = FALSE, n = FALSE, se = FALSE)

Arguments

x
Vector of values for the categorical variable.
y
Vector of values for the continuous variable.
latex
If TRUE, object returned will be formatted for printing in LaTeX using xtable [1]; if FALSE, it will be formatted for copy-and-pasting from RStudio into a word processor.
xlevels
Optional character vector to label the levels of x. If unspecified, the function uses the values that x takes on.
yname
Optional label for the continuous variable.
decimals
Number of decimal places for means and standard deviations or standard errors.
p.decimals
Number of decimal places for p-values. If a vector is provided rather than a single value, number of decimal places will depend on what range the p-value lies in. See p.cuts.
p.cuts
Cut-point(s) to control number of decimal places used for p-values. For example, by default p.cuts is 0.1 and p.decimals is c(2, 3). This means that p-values in the range [0.1, 1] will be printed to two decimal places, while p-values in the range [0, 0.1)
p.lowerbound
Controls cut-point at which p-values are no longer printed as their value, but rather
p.leading0
If TRUE, p-values are printed with 0 before decimal place; if FALSE, the leading 0 is omitted.
p.avoid1
If TRUE, p-values rounded to 1 are not printed as 1, but as >0.99 (or similarly depending on values for p.decimals and p.cuts).
n
If TRUE, the table will have a column for sample size.
se
If TRUE, the table will present mean (standard error) rather than mean (standard deviation).

Value

  • A character matrix with the requested table comparing mean y across levels of x. If you click on the matrix name under "Data" in the RStudio Workspace tab, you will see a clean table that you can copy and paste into a statistical report or manuscript. If latex is set to TRUE, the character matrix will be formatted for inserting into an Sweave or Knitr report using the xtable package [1].

Details

If x has two levels, a t-test is used to test for a difference in means. An F test is first used to determine whether the equal variance or unequal variance t-test is appropriate. If x has more than two levels, a one-way analysis of variance is used to test for a difference in means across the groups. Both x and y can have missing values. The function drops observations with missing x or y.

References

1. Dahl DB (2013). xtable: Export tables to LaTeX or HTML. R package version 1.7-1, http://CRAN.R-project.org/package=xtable. Acknowledgment: This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE-0940903.

See Also

tabfreq, tabmedians, tabmulti, tabglm, tabcox, tabgee, tabfreq.svy, tabmeans.svy, tabglm.svy,

Examples

Run this code
# Load in sample dataset d and drop rows with missing values
data(d)
d <- d[complete.cases(d), ]

# Create labels for group and race
groups <- c("Control", "Treatment")
races <- c("White", "Black", "Mexican American", "Other")

# Compare mean BMI in control group vs. treatment group
meanstable1 <- tabmeans(x = d$group, y = d$bmi, xlevels = groups, yname = "BMI")

# Compare mean BMI by race and include sample size
meanstable2 <- tabmeans(x = d$race, y = d$bmi, xlevels = races, yname = "BMI", n = TRUE)

# Create single table comparing mean BMI and mean age in control vs. treatment group
meanstable3 <- rbind(tabmeans(x = d$group, y = d$bmi, xlevels = groups, yname = "BMI"),
                     tabmeans(x = d$group, y = d$age, xlevels = groups, yname = "Age"))
                     
# An easier way to make the above table is to call the tabmulti function
meanstable4 <- tabmulti(dataset = d, xvarname = "group", yvarnames = c("bmi", "age"),
                        xlevels = groups, ynames = c("BMI", "Age"))
                        
# meanstable3 and meanstable4 are equivalent
all(meanstable3 == meanstable4)

# Click on meanstable1, meanstable2, meanstable3, or meanstable4 in the Workspace tab of
# RStudio to see the tables that could be copied and pasted into a report or manuscript. 
# Alternatively, setting the latex input to TRUE produces tables that can be inserted 
# into LaTeX using the xtable package.

Run the code above in your browser using DataLab