如何解决tbl_regression对象列表添加显著性星号的报错问题?
解决方法
报错原因是add_significance_stars()仅支持单个tbl_regression/tbl_uvregression对象,无法直接处理列表。需要先遍历列表为每个模型单独添加显著性星号,再合并成一张表格。
修改后的代码如下:
library(gtsummary) library(tidyverse) # 创建tbl_regression对象列表 models <- c("disp", "disp + hp") %>% map( ~ paste("vs", .x, sep = " ~ ") %>% as.formula() %>% glm(data = mtcars, family = binomial(link = "logit")) %>% tbl_regression(exponentiate = TRUE) ) # 1. 遍历列表,为每个模型添加显著性星号 models_with_stars <- models %>% map( ~ add_significance_stars( .x, pattern = "{estimate}{stars}", thresholds = c(0.001, 0.01, 0.05), hide_ci = TRUE, hide_p = TRUE, hide_se = FALSE ) ) # 2. 合并多个模型表格 tbl_merge( tbls = models_with_stars, column_spanners = c("**模型1: vs ~ disp**", "**模型2: vs ~ disp + hp**") )
关键说明
- 使用
map()遍历模型列表,对每个tbl_regression对象单独调用add_significance_stars(),确保输入符合函数要求。 - 用
tbl_merge()将处理后的多个表格合并,通过column_spanners设置列标题区分不同模型,最终得到带显著性星号的合并表格。
内容的提问来源于stack exchange,提问作者nicholas
相关产品推荐
相关产品推荐

