使用 gtsummary 对 table 中的回归变量进行排序

Order regression variables in table using gtsummary

是否可以使用 gtsummary 函数对回归 table 中的变量进行排序?例如,假设我有以下模型:

model <- lm(formula = mpg ~ disp + drat + hp, data = mtcars) 

我想按以下顺序使用自变量创建回归 table:drat,然后是 hp ,然后 disp。以下代码将实现该目标:

library(gtsummary)
lm(formula = mpg ~ drat + hp + disp, data = mtcars) |>
  tbl_regression()

但是,我不想重新 运行 回归,而是想对 model 对象中包含的变量重新排序。有没有办法使用 gtsummary 函数(或其他一些 post 估计函数)来做到这一点?

如您所提到的,重新排序变量的最简单方法是按照您喜欢的顺序重新运行模型和变量。但这对于大型模型来说可能很耗时。

在每个 gtsummary 对象中都有一个名为 .$table_body 的数据框。本质上,gtsummary 是此数据框的精美打印,您可以根据需要重新排序行。

数据框中有一列称为变量,您可以将您想要的任何变量排序到顶部或底部。示例如下!

library(gtsummary)
#> #BlackLivesMatter
library(dplyr)

model <- lm(formula = mpg ~ disp + drat + hp, data = mtcars) 

tbl_regression(model) %>%
  # re-order the variables in the table
  modify_table_body(
    ~.x %>%
      arrange(desc(variable == "hp")) %>%
      arrange(desc(variable == "drat"))
  ) %>%
  as_kable() # convert to kable so it'll display on Whosebug
Characteristic Beta 95% CI p-value
drat 2.7 -0.33, 5.8 0.079
hp -0.03 -0.06, 0.00 0.027
disp -0.02 -0.04, 0.00 0.050

reprex package (v2.0.1)

于 2021-10-30 创建