Description Usage Arguments Details Value Note Author(s) References See Also Examples
This function takes an object returned from the glm
function and
generates a clean summary table for a statistical report.
1 2 3 4 5 6 7 8 | tabglm(glmfit, latex = FALSE, xlabels = NULL, ci.beta = TRUE,
inference = "wald", decimals = 2, p.decimals = c(2, 3), p.cuts = 0.01,
p.lowerbound = 0.001, p.leading0 = TRUE, p.avoid1 = FALSE,
basic.form = FALSE, intercept = TRUE, n = FALSE, events = FALSE,
greek.beta = FALSE, binary.compress = TRUE, bold.colnames = TRUE,
bold.varnames = FALSE, bold.varlevels = FALSE,
predictor.colname = "Variable", print.html = FALSE,
html.filename = "table1.html")
|
glmfit |
An object returned from |
latex |
If |
xlabels |
Optional character vector to label the |
ci.beta |
If |
inference |
If |
decimals |
Number of decimal places for numeric values in the table (except p-values). |
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 |
basic.form |
If |
intercept |
If |
n |
If |
events |
If |
greek.beta |
If |
binary.compress |
If |
bold.colnames |
If |
bold.varnames |
If |
bold.varlevels |
If |
predictor.colname |
Character string with desired column heading for the column of predictors. |
print.html |
If |
html.filename |
Character string indicating the name of the .html file that gets printed if
|
The function should work well with categorical predictors (factors), provided
they are not ordered. For ordered factors, just convert to unordered before
creating the glm
object to pass to tabgee
. Note that you
can define the levels of an unordered factor to control, which dictates which
level is used as the reference group in regression models. For example, suppose
a factor variable x
takes values "low"
, "medium"
, and
"high"
. If you write x = factor(x = x, levels = c("low", "medium",
"high"))
, then you can run levels(x)
to see that the levels are now
arranged "low"
, "medium"
, "high"
. It is still a regular
factor, but now if you use x
as a predictor in a call to
glm
, "low"
will be the reference group.
Interaction and polynomial terms are compatible with tabglm
. If
interaction terms are included, the table will be formatted a little
differently. Basically including an interaction is equivalent to setting
basic.form = TRUE
. All variable names and levels will be exactly as they
appear when you run summary(glmfit)
, where glmfit
is the object
returned from a call to glm
.
A character matrix that summarizes the fitted generalized linear model. If
latex = TRUE
, the character matrix will be formatted for inserting into a
Markdown/Sweave/knitr report using the xtable
package [1].
This function replaces the previous functions tablin
and tablog
,
which were for linear and logistic regression, respectively. The only capability
those functions had that tabglm
does not currently have is the ability to
calculate standardized regression coefficients. This feature may be added to
tabglm
in the future.
While tabglm
should work with any object generated by a call to
glm
, not all possibilities have been tested. Therefore in general
I recommend always doing a quick check that the table created by tabglm
matches the information in the glm
object itself.
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.
glm
tabfreq
tabmeans
tabmedians
tabmulti
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 | # Load in sample dataset d and drop rows with missing values
data(d)
d <- d[complete.cases(d), ]
# Create labels for race levels
races <- c("White", "Black", "Mexican American", "Other")
# Test whether age, sex, race, and treatment group are associated with BMI
glmfit1 <- glm(BMI ~ Age + Sex + Race + Group, data = d)
lintable <- tabglm(glmfit = glmfit1,
xlabels = c("Intercept", "Age", "Male", "Race", races,
"Treatment"))
# Test whether age, sex, race, and treatment group are associated with 1-year
# mortality
glmfit2 <- glm(death_1yr ~ Age + Sex + Race + Group, data = d,
family = binomial)
logtable <- tabglm(glmfit = glmfit2, ci.beta = FALSE,
xlabels = c("Intercept", "Age", "Male", "Race", races,
"Treatment"))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.