You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用gtsummary的tbl_merge函数后变量标签无法修改如何解决

问题根因
  • 你定义的标签列表没有绑定到数据集的变量属性上,gtsummary系列函数默认读取数据集自带的变量标签,未绑定的标签不会生效
  • tbl_merge()本身没有提供label参数,直接向该函数传入自定义标签列表无法被识别
  • 原代码中tbl_regression()内的attr(Table.7$sex, "Sex1")属于无效参数,无实际作用
解决方案

推荐优先使用方案1,一次赋值全流程生效,无需重复配置标签:

方案1:提前为数据集绑定变量标签

只需在创建数据集后将你定义的标签列表绑定到变量属性,后续单因素、多因素回归表格都会自动读取标签,合并后自然生效:

library(gtsummary)
library(labelled)

Table.7<-cov %>% 
  select(status,sex,ht,dm,chd,ca,pneu,copd,ards1)
# 定义标签列表
label=list(sex="Sex", 
           ht="Hypertension",
           dm="Diabetes",
           chd="Cardiac Dieases",
           ca="Cancer", 
           pneu="Pneumonia",
           asthma= "Asthma",
           copd="COPD", 
           ards1="ARDS")
# 关键步骤:将标签绑定到数据集变量
Table.7 <- set_variable_labels(Table.7, !!!label)

# 单因素回归 自动读取标签
tb_u<-tbl_uvregression(
    method = glm,
    data = Table.7,
    y = status, 
    method.args = list(family = binomial(link = logit)),
    exponentiate = TRUE
  )
  
# 多因素回归 自动读取标签
tb_m<- glm(status ~ ht+sex+dm+chd+ca+pneu+copd+ards1,data=Table.7,
           family = binomial(link = logit)) %>%
  tbl_regression(exponentiate = TRUE)

# 合并表格 标签已自动适配
tbl_merge(list(tb_u, tb_m),
  tab_spanner = c("**Univariate**", "**Multivariate**")) %>% 
  bold_labels() %>% 
  as_flex_table()

方案2:合并表格后批量修改标签

如果不想修改前面的回归代码,可以在tbl_merge()后调用modify_variable_labels()直接修改合并后表格的标签:

tbl_merge(list(tb_u, tb_m),
  tab_spanner = c("**Univariate**", "**Multivariate**")) %>% 
  # 直接传入你定义的标签列表即可批量修改
  modify_variable_labels(.labels = label) %>%
  bold_labels() %>% 
  as_flex_table()

内容的提问来源于stack exchange,提问作者Defriman Djafri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:54:03