如何在gtsummary中排除单个变量不计算SMD?
解决方法
问题出在add_difference()的选择器语法使用错误,!age不是gtsummary认可的变量选择方式,参数逻辑也需要调整。要实现除age外所有变量计算SMD,同时age对应的差值和CI列为空,你可以按以下方式修改代码:
library(gtsummary) trial %>% select(age, grade, response, trt) %>% tbl_summary( by = trt, label = list(age ~ "Patient Age"), statistic = list(all_continuous() ~ "{mean} ({sd})"), digits = list(age ~ c(0, 1)) ) %>% add_difference( # 对除age外的所有变量指定计算SMD test = list( everything() & !age ~ "smd", # 对age设置不计算任何检验/差值 age ~ NULL ) )
关键说明
- 使用
everything() & !age精准选中除age外的所有变量,指定它们用"smd"方法计算差异 - 对
age设置test = NULL,该变量不会执行任何差异检验,对应的Difference和95% CI列会显示为空 - 如果只需要针对连续变量除
age外计算SMD,可把everything() & !age换成all_continuous() & !age,分类变量会使用默认检验方法(若不需要分类变量的差异结果,也可对分类变量单独设置test = NULL)
内容的提问来源于stack exchange,提问作者LittleLynx
相关产品推荐
相关产品推荐

