【问题标题】:Order regression variables in table using gtsummary使用 gtsummary 对表中的回归变量进行排序
【发布时间】:2021-10-30 23:55:38
【问题描述】:

是否可以使用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 函数(或其他一些后估计函数)来做到这一点?

【问题讨论】:

    标签: r gtsummary gt


    【解决方案1】:

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

    在每个 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
    
    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 日创建

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 2022-01-21
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      • 2023-01-26
      • 2014-12-11
      相关资源
      最近更新 更多