This function takes a gtsummary table and converts it to a
forest plot using
forestplot::forestplot().
as_forest_plot(
x,
col_names = c("estimate", "ci", "p.value"),
graph.pos = 2,
boxsize = 0.3,
title_line_color = "darkblue",
xlog = x$inputs$exponentiate,
...
)a gtsummary object of class "tbl_regression" or "tbl_uvregression"
names of columns in x$table_body to print on the RHS of the
forest plot. Default is c("estimate", "ci", "p.value")
The position of the graph element within the table of text. The
position can be 1-(ncol(labeltext) + 1). You can also choose set the position
to "left" or "right".
Override the default box size based on precision
color of line that appears above forest plot.
Default is "darkblue"
If TRUE, x-axis tick marks are to follow a logarithmic scale, e.g. for
logistic regression (OR), survival estimates (HR), Poisson regression etc.
Note: This is an intentional break with the original forestplot
function as I've found that exponentiated ticks/clips/zero effect are more
difficult to for non-statisticians and there are sometimes issues with rounding
the tick marks properly.
arguments passed to forestplot::forestplot()
library(gtsummary)
library(survival)
# Example 1 ----------------------------------
tbl_uvregression(
trial[c("response", "age", "grade")],
method = glm,
y = response,
method.args = list(family = binomial),
exponentiate = TRUE
) %>%
as_forest_plot()
# Example 2 ------------------------------------
tbl <-
coxph(Surv(ttdeath, death) ~ age + marker, trial) %>%
tbl_regression(exponentiate = TRUE) %>%
add_n()
as_forest_plot(tbl, col_names = c("stat_n", "estimate", "ci", "p.value"))
# Example 3 ----------------------------------
tbl %>%
modify_cols_merge(
pattern = "{estimate} ({ci})",
rows = !is.na(estimate)
) %>%
modify_header(estimate = "HR (95% CI)") %>%
as_forest_plot(
col_names = c("estimate", "p.value"),
boxsize = 0.2,
col = forestplot::fpColors(box = "darkred")
)
#> Warning: `modify_cols_merge()` was deprecated in gtsummary 1.6.1.
#> ℹ Please use `modify_column_merge()` instead.