Description Usage Arguments Details Value Note Author(s) References See Also Examples
This function compares the mean of a continuous variable across levels of a categorical variable and summarizes the results in a clean table (or figure) for a statistical report.
1 2 3 4 5 6 7 8 9 | tabmeans(x, y, latex = FALSE, variance = "unequal", xname = NULL,
xlevels = NULL, yname = NULL, quantiles = NULL, quantile.vals = FALSE,
parenth = "sd", text.label = NULL, parenth.sep = "-", decimals = NULL,
p.include = TRUE, p.decimals = c(2, 3), p.cuts = 0.01,
p.lowerbound = 0.001, p.leading0 = TRUE, p.avoid1 = FALSE,
overall.column = TRUE, n.column = FALSE, n.headings = TRUE,
bold.colnames = TRUE, bold.varnames = FALSE,
variable.colname = "Variable", fig = FALSE, fig.errorbars = "z.ci",
fig.title = NULL, print.html = FALSE, html.filename = "table1.html")
|
x |
Vector of values for the categorical |
y |
Vector of values for the continuous |
latex |
If |
variance |
Controls whether equal variance t-test or unequal variance t-test is used when
|
xname |
Label for the categorical variable. Only used if |
xlevels |
Optional character vector to label the levels of |
yname |
Optional label for the continuous |
quantiles |
If specified, function compares means of the |
quantile.vals |
If |
parenth |
Controls what values (if any) are placed in parentheses after the means in each
cell. Possible values are |
text.label |
Optional text to put after the |
parenth.sep |
Optional character specifying the separator between lower and upper bound of
confidence interval (when requested). Usually either |
decimals |
Number of decimal places for numeric values in the table (except p-values). If unspecified, function uses 0 decimal places if the largest mean (in magnitude) is in [1,000, Inf), 1 decimal place if [10, 1,000), 2 decimal places if [0.1, 10), 3 decimal places if [0.01, 0.1), 4 decimal places if [0.001, 0.01), 5 decimal places if [0.0001, 0.001), and 6 decimal places if [0, 0.0001). |
p.include |
If |
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 |
Cut-point(s) to control number of decimal places used for p-values. For example,
by default |
p.lowerbound |
Controls cut-point at which p-values are no longer printed as their value, but
rather <lowerbound. For example, by default |
p.leading0 |
If |
p.avoid1 |
If |
overall.column |
If |
n.column |
If |
n.headings |
If |
bold.colnames |
If |
bold.varnames |
If |
variable.colname |
Character string with desired heading for first column of table, which shows the
|
fig |
If |
fig.errorbars |
Controls error bars around mean when |
fig.title |
Title of figure. If unspecified, title is set to |
print.html |
If |
html.filename |
Character string indicating the name of the .html file that gets printed if
|
If x
has two levels, a t-test is used to test for a difference in means.
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
.
A character matrix with the requested table comparing mean y
across
levels of x
. If latex = TRUE
, the character matrix will be
formatted for inserting into a Markdown/Sweave/knitr report using the
xtable
package [1].
If you wish to paste your tables into Word, you can use either of these approaches:
1. Use the write.cb
function in the Kmisc
package
[2]. If your table is stored in a character matrix named table1
, use
write.cb(table1)
to copy the table to your clipboard. Paste the result
into Word, then highlight the text and go to Insert - Table - Convert Text
to Table... OK
.
2. Set print.html = TRUE
. This will result in a .html file writing to
your current working directory. When you open this file, you will see a nice
looking table that you can copy and paste into Word. You can control the name of
this file with html.filename
.
If you wish to use LaTeX, R Markdown, knitr, Sweave, etc., set
latex = TRUE
and then use xtable
[1]. You may have to set
sanitize.text.function = identity
when calling
print.xtable
.
If you have suggestions for additional options or features, or if you would like some help using any function in tab, please e-mail me at vandomed@gmail.com. Thanks!
Dane R. Van Domelen
1. Dahl DB (2013). xtable: Export tables to LaTeX or HTML. R package version 1.7-1, https://cran.r-project.org/package=xtable.
2. Kevin Ushey (2013). Kmisc: Kevin Miscellaneous. R package version 0.5.0. https://CRAN.R-project.org/package=Kmisc.
Acknowledgment: This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No. DGE-0940903.
tabfreq
tabmedians
tabmulti
tabglm
tabcox
tabgee
tabfreq.svy
tabmeans.svy
tabmedians.svy
tabmulti.svy
tabglm.svy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # Load in sample dataset d and drop rows with missing values
data(d)
d <- d[complete.cases(d), ]
# Compare mean BMI in control group vs. treatment group - table and figure
meanstable1 <- tabmeans(x = d$Group, y = d$BMI)
meansfig1 <- tabmeans(x = d$Group, y = d$BMI, fig = TRUE)
# Compare mean BMI by race - table and figure
meanstable2 <- tabmeans(x = d$Race, y = d$BMI)
meansfig2 <- tabmeans(x = d$Race, y = d$BMI, fig = TRUE)
# Compare mean baseline systolic BP across tertiles of BMI - table and figure
meanstable3 <- tabmeans(x = d$BMI, y = d$bp.1, yname = "Systolic BP",
quantiles = 3)
meansfig3 <- tabmeans(x = d$BMI, y = d$bp.1, quantiles = 3, fig = TRUE,
yname = "Systolic BP", xname = "BMI Tertile")
# Create single table comparing mean BMI and mean age in control vs. treatment
# group
meanstable4 <- rbind(tabmeans(x = d$Group, y = d$BMI),
tabmeans(x = d$Group, y = d$Age))
# An easier way to make the above table is to call the tabmulti function
meanstable5 <- tabmulti(dataset = d, xvarname = "Group",
yvarnames = c("BMI", "Age"))
# meanstable4 and meanstable5 are equivalent
all(meanstable4 == meanstable5)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.