首页 > 解决方案 > 如何将观察数放在 gtsummary 回归表的底部?

问题描述

我想将回归模型集中包含的观察数放在gtsummary表格底部,与系数估计值在同一列中。将观察的数量放在列中很简单:

library(dplyr)
library(gtsummary)

df <- mtcars %>% 
  mutate(cyl_miss = if_else(
    cyl == 6,
    NA_real_,
    cyl
  ))
  
model_1 <- lm(
  data = df,
  formula = mpg ~ cyl + disp
)

model_2 <- lm(
  data = df,
  formula = mpg ~ cyl_miss + disp
)

table_1 <- tbl_regression(model_1) %>% 
  add_significance_stars(
    pattern = "{estimate}{stars}",
    thresholds = c(0.001, 0.01, 0.05),
    hide_ci = TRUE,
    hide_p = TRUE,
    hide_se = FALSE
  ) %>% 
  add_n()


table_2 <- tbl_regression(model_2) %>% 
  add_significance_stars(
    pattern = "{estimate}{stars}",
    thresholds = c(0.001, 0.01, 0.05),
    hide_ci = TRUE,
    hide_p = TRUE,
    hide_se = FALSE
  ) %>% 
  add_n()

tbl_merge(
  list(table_1, table_2)
)  

如何将数字(此处为 32 和 25)放在 Beta 列中,在标记为“N”的行中?

标签: rgtsummarygt

解决方案


要将 N 添加到表的新行中,您需要使用该add_glance_table()函数。下面的例子!

library(gtsummary)
packageVersion("gtsummary")
#> [1] '1.4.2'
df <- 
  mtcars %>% 
  dplyr::mutate(
    cyl_miss = ifelse(cyl == 6, NA_real_, cyl)
  )

model_1 <- lm(data = df, formula = mpg ~ cyl + disp)
model_2 <- lm(data = df, formula = mpg ~ cyl_miss + disp)

table_1 <- 
  tbl_regression(model_1) %>% 
  add_significance_stars() %>%
  add_glance_table(include = nobs)

table_2 <- 
  tbl_regression(model_2) %>% 
  add_significance_stars() %>%
  add_glance_table(include = nobs)

table_final <- 
  tbl_merge(list(table_1, table_2)) %>%
  # ensure the glance statistics are at the bottom of table
  modify_table_body(~.x %>% dplyr::arrange(row_type == "glance_statistic"))

在此处输入图像描述 reprex 包(v2.0.1)创建于 2021-09-14


推荐阅读