我有一个有四个结果的因变量。我已经使用mlogit软件包进行了多项逻辑回归。
当我尝试使用gtsummary软件包呈现结果时,我的多项逻辑回归结果彼此堆叠(请参见下面的代码和表)。
无论如何,是否仅使用一组级别的标签将结果并排成一行,而不是像下面的表格那样相互堆叠?
# load packages
library(gtsummary)
library(nnet)
# dummy data
crime <-data.frame(city = sample(c("SF", "AR", "NYC","MN"),13000,replace = TRUE),
year = sample(as.factor(c(1990, 2000, 1999, 1989)),13000,replace = TRUE)
)
# multinom model tabulated with gtsummary
multinom(city ~ year, data = crime) %>%
tbl_regression(exponentiate = T)
答案 0 :(得分:1)
多项式模型的处理在该软件包的当前开发版本中得到了改进,并将很快发布(在1.3.6版中)。
默认情况下,多项模型将以长格式打印。参见下面的示例。
# install dev versions
remotes::install_github("ddsjoberg/gtsummary@mice_nnet")
remotes::install_github("larmarange/broom.helpers")
# load packages
library(gtsummary)
library(nnet)
theme_gtsummary_compact()
# dummy data
crime <-data.frame(city = sample(c("SF", "AR", "NYC","MN"),13000,replace = TRUE),
year = sample(as.factor(c(1990, 2000, 1999, 1989)),13000,replace = TRUE)
)
# build model
mod <- multinom(city ~ year, data = crime)
# multinom model tabulated with gtsummary
tbl_long <-
mod %>%
tbl_regression(exponentiate = TRUE) %>%
modify_header(estimate ~ "**OR**")
使用默认的LONG格式打标肯定会更加简单。但是也有可能获得广泛的格式。本质上,您需要为结果的每个级别构造一个gtsummary表,以将gtsummary表显示和合并在一起。
# to make it WIDE --------------------------------------------------------------
tbl_MN <-
tbl_regression(
mod,
exponentiate = TRUE,
tidy_fun = function(x, ...) broom::tidy(x, ...) %>% dplyr::filter(y.level == "MN")
) %>%
modify_table_body(dplyr::ungroup) %>%
modify_table_body(dplyr::select, -groupname_col)
tbl_NYC <-
tbl_regression(
mod,
exponentiate = TRUE,
tidy_fun = function(x, ...) broom::tidy(x, ...) %>% dplyr::filter(y.level == "NYC")
) %>%
modify_table_body(dplyr::ungroup) %>%
modify_table_body(dplyr::select, -groupname_col)
tbl_SF <-
tbl_regression(
mod,
exponentiate = TRUE,
tidy_fun = function(x, ...) broom::tidy(x, ...) %>% dplyr::filter(y.level == "SF")
) %>%
modify_table_body(dplyr::ungroup) %>%
modify_table_body(dplyr::select, -groupname_col)
tbl_wide <-
tbl_merge(list(tbl_MN, tbl_NYC, tbl_SF), tab_spanner = c("**MN**", "**NYC**", "**SF**"))