Description Usage Arguments Details Value Note Author(s) References See Also Examples
This function takes an object returned from the gee
function in
the package gee [1] and generates a clean summary table for a statistical
report.
1 2 3 4 5 6 7 8 | tabgee(geefit, latex = FALSE, xlabels = NULL, ci.beta = TRUE, 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.id = FALSE, n.total = FALSE, or = TRUE,
robust = TRUE, data = NULL, 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")
|
geefit |
An object returned from |
latex |
If |
xlabels |
Optional character vector to label the |
ci.beta |
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.id |
If |
n.total |
If |
or |
If |
robust |
If |
data |
Data frame or matrix containing variables passed to |
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 gee
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
gee
, "low"
will be the reference group.
Interaction and polynomial terms are compatible with tabgee
. 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(geefit)
, where geefit
is the object
returned from a call to gee
.
A character matrix that summarizes the fitted GEE. If latex = TRUE
, the
character matrix will be formatted for inserting into a Markdown/Sweave/knitr
report using the xtable
package [2].
While tabgee
should work with any object generated by a call to
gee
, not all possibilities have been tested. Therefore in general I
recommend always doing a quick check that the table created by tabgee
matches the information in the gee
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
[3]. 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
[2]. 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. Carey VJ (2012). gee: Generalized estimation equation solver. R package version 4.13-18. https://cran.r-project.org/package=gee.
2. Dahl DB (2013). xtable: Export tables to LaTeX or HTML. R package version 1.7-1, https://cran.r-project.org/package=xtable.
3. 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.
gee
tabfreq
tabmeans
tabmedians
tabmulti
tabglm
tabcox
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 30 31 32 33 | # Load in sample dataset d and convert to long format
data(d)
d2 <- reshape(data = d,
varying = c("bp.1", "bp.2", "bp.3", "highbp.1", "highbp.2",
"highbp.3"),
timevar = "bp.visit", direction = "long")
d2 <- d2[order(d2$id), ]
# Load required package gee
library("gee")
# Create labels for race levels
races <- c("White", "Black", "Mexican American", "Other")
# Test whether predictors are associated with blood pressure at 1, 2, and 3
# months
geefit1 <- gee(bp ~ Age + Sex + Race + BMI + Group, id = id, data = d2,
corstr = "unstructured")
# Create summary table using tabgee
geetable1 <- tabgee(geefit = geefit1, data = d2, n.id = TRUE, n.total = TRUE,
xlabels = c("Intercept", "Age", "Male", "Race", races,
"BMI", "Treatment"))
# Test whether predictors are associated with high blood pressure at 1, 2, and
# 3 months
geefit2 <- gee(highbp ~ Age + Sex + Race + BMI + Group, id = id, data = d2,
family = binomial, corstr = "unstructured")
# Create summary table using tabgee
geetable2 <- tabgee(geefit = geefit2, data = d2, ci.beta = FALSE,
xlabels = c("Intercept", "Age", "Male", "Race", races,
"BMI", "Treatment"))
|
Beginning Cgee S-function, @(#) geeformula.q 4.13 98/01/27
running glm to get initial regression estimate
(Intercept) Age SexMale
111.89775246 0.04056654 4.16389689
RaceBlack RaceMexican American RaceOther
0.15475299 1.16832912 0.01975425
BMI GroupTreatment
0.63487889 3.65538664
Beginning Cgee S-function, @(#) geeformula.q 4.13 98/01/27
running glm to get initial regression estimate
(Intercept) Age SexMale
-4.642853912 0.002922334 0.523048556
RaceBlack RaceMexican American RaceOther
0.097001275 0.277749363 -0.087013170
BMI GroupTreatment
0.115028079 0.654824501
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.