Create table of regression model
Examples
if (FALSE) { # \dontrun{
tbl <- gtsummary::trial |>
regression_model(
outcome.str = "stage",
fun = "MASS::polr"
) |>
regression_table(args.list = list("exponentiate" = TRUE))
gtsummary::trial |>
regression_model(
outcome.str = "age",
fun = "stats::lm",
formula.str = "{outcome.str}~.",
args.list = NULL
) |>
regression_table() |> plot()
gtsummary::trial |>
regression_model(
outcome.str = "trt",
fun = "stats::glm",
args.list = list(family = binomial(link = "logit"))
) |>
regression_table()
gtsummary::trial |>
regression_model_uv(
outcome.str = "trt",
fun = "stats::glm",
args.list = list(family = stats::binomial(link = "logit"))
) |>
regression_table()
gtsummary::trial |>
regression_model_uv(
outcome.str = "stage",
args.list = list(family = stats::binomial(link = "logit"))
) |>
regression_table()
list(
"Univariable" = regression_model_uv,
"Multivariable" = regression_model
) |>
lapply(\(.fun){
do.call(
.fun,
c(
list(data = gtsummary::trial),
list(outcome.str = "stage")
)
)
}) |>
purrr::map(regression_table) |>
tbl_merge()
} # }
regression_table <- function(x, ...) {
UseMethod("regression_table")
}
#' @rdname regression_table
#' @export
regression_table.list <- function(x, ...) {
x |>
purrr::map(\(.m){
regression_table(x = .m, ...) |>
gtsummary::add_n()
}) |>
gtsummary::tbl_stack()
}
#' @rdname regression_table
#' @export
regression_table.default <- function(x, ..., args.list = NULL, fun = "gtsummary::tbl_regression") {
# Stripping custom class
class(x) <- class(x)[class(x) != "freesearcher_model"]
if (any(c(length(class(x)) != 1, class(x) != "lm"))) {
if (!"exponentiate" %in% names(args.list)) {
args.list <- c(args.list, list(exponentiate = TRUE))
}
}
out <- do.call(getfun(fun), c(list(x = x), args.list))
out |>
gtsummary::add_glance_source_note() # |>
# gtsummary::bold_p()
}