首页 > 解决方案 > 使用 gtsummary 对表中的回归变量进行排序

问题描述

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

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

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

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

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

标签: rgtsummarygt

解决方案


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

在每个 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 stackoverflow
特征 贝塔 95% 置信度 p 值
德拉特 2.7 -0.33, 5.8 0.079
生命值 -0.03 -0.06, 0.00 0.027
显示 -0.02 -0.04, 0.00 0.050

reprex 包于 2021-10-30 创建(v2.0.1)


推荐阅读