View source: R/forestplotRegrObj.R
forestplotRegrObj | R Documentation |
Plot different model fits with similar variables in order to compare the model's estimates and confidence intervals. Each model is represented by a separate line on top of eachother and are therefore ideal for comparing different models. This extra appealing when you have lots of variables included in the models.
forestplotRegrObj(
regr.obj,
postprocess_estimates.fn = function(x) x,
rowname = "Variable",
ci.txt = "CI",
ci.glue = "{lower} to {higher}",
digits = 1,
get_box_size = fpBoxSize,
...
)
## Default S3 method:
forestplotRegrObj(
regr.obj,
postprocess_estimates.fn = function(x) x,
rowname = "Variable",
ci.txt = "CI",
ci.glue = "{lower} to {higher}",
digits = 1,
get_box_size = fpBoxSize,
...
)
## S3 method for class 'coxph'
forestplotRegrObj(
regr.obj,
postprocess_estimates.fn = function(x) x,
rowname = "Variable",
ci.txt = "CI",
ci.glue = "{lower} to {higher}",
digits = 1,
get_box_size = fpBoxSize,
xlab = "Hazard Ratio",
estimate.txt = "HR",
xlog = TRUE,
zero = 1,
exp = TRUE,
...
)
## S3 method for class 'lrm'
forestplotRegrObj(
regr.obj,
postprocess_estimates.fn = function(x) x,
rowname = "Variable",
ci.txt = "CI",
ci.glue = "{lower} to {higher}",
digits = 1,
get_box_size = fpBoxSize,
xlab = "Odds ratio",
estimate.txt = "HR",
xlog = TRUE,
zero = 1,
exp = TRUE,
...
)
## S3 method for class 'lm'
forestplotRegrObj(
regr.obj,
postprocess_estimates.fn = function(x) x,
rowname = "Variable",
ci.txt = "CI",
ci.glue = "{lower} to {higher}",
digits = 1,
get_box_size = fpBoxSize,
xlab = "Effect",
estimate.txt = "Coef",
xlog = FALSE,
zero = 0,
exp = FALSE,
...
)
## S3 method for class 'glm'
forestplotRegrObj(
regr.obj,
postprocess_estimates.fn = function(x) x,
rowname = "Variable",
ci.txt = "CI",
ci.glue = "{lower} to {higher}",
digits = 1,
get_box_size = fpBoxSize,
xlab = NULL,
xlog = NULL,
zero = NULL,
estimate.txt = NULL,
exp = NULL,
...
)
## S3 method for class 'list'
forestplotRegrObj(
regr.obj,
postprocess_estimates.fn = function(x) x,
rowname = "Variable",
ci.txt = "CI",
ci.glue = "{lower} to {higher}",
digits = 1,
get_box_size = fpBoxSize,
xlab = NULL,
xlog = NULL,
zero = NULL,
estimate.txt = NULL,
exp = NULL,
...
)
fpBoxSize(p_values, variable_count, boxsize, significant = 0.05)
regr.obj |
A regression model object. It should be of coxph, crr or glm class. Warning: The glm is not fully tested. |
postprocess_estimates.fn |
A function that takes the regression outputs and returns the same data with modifications. The input columns are: * 'Rowname' * 'Coef' * 'Lower' * 'Upper' * 'Sort' |
rowname |
The name of the variables |
ci.txt |
The text above the confidence interval, defaults to '"CI"' |
ci.glue |
The string used for [glue::glue()] the 'lower' and 'higher' confidence intervals together. |
digits |
The number of digits to round presented values to |
get_box_size |
A function for extracting the box sizes |
... |
Passed to |
xlab |
x-axis label |
estimate.txt |
The text above the estimate, e.g. Est, HR |
xlog |
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 |
zero |
Indicates what is zero effect. For survival/logistic fits the zero is 1 while in most other cases it's 0. |
exp |
Report in exponential form. Default true since the function was built for use with survival models. |
p_values |
The p-values that will work as the foundation for the box size |
variable_count |
The number of variables |
boxsize |
The default box size |
significant |
Level of significance .05 |
Other forestplot wrappers:
forestplotCombineRegrObj()
org.par <- par("ask" = TRUE)
library(tidyverse)
# simulated data to test
set.seed(102)
cov <- tibble(ftime = rexp(200)) |>
mutate(x1 = runif(n()),
x2 = runif(n()),
x3 = runif(n()),
fstatus1 = if_else(x1 * 1 +
x2 * 0.2 +
x3 * 0.5 +
runif(n()) * 0.5 > 1,
1, 0),
fstatus2 = if_else(x1 * 0.2 +
x2 * 0.5 +
x3 * 0.1 +
runif(n()) * 2 > 1,
1, 0)) |>
# Add some column labels
Gmisc::set_column_labels(x1 = "First variable",
x2 = "Second variable")
library(rms)
dd <- datadist(cov)
options(datadist = "dd")
fit1 <- cph(Surv(ftime, fstatus1 == 1) ~ x1 + x2 + x3, data = cov)
fit1 |>
forestplotRegrObj() |>
fp_set_zebra_style("#f0f0f0")
fit2 <- update(fit1, Surv(ftime, fstatus2 == 1) ~ .)
list("Frist model" = fit1, "Second model" = fit2) |>
forestplotRegrObj(legend_args = fpLegend(title = "Type of regression"),
postprocess_estimates.fn = function(x) {
x |>
filter(str_detect(column_term, "(x2|x3)"))
}) |>
fp_set_style(box = rep(c("darkblue", "darkred"), each = 3))
par(org.par)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.