如何修改gtsummary包的显著性星号标记规则?
实现gtsummary自定义显著性符号的方法
因为add_significance_stars只能用星号(*),没法直接替换成+这类符号,所以得手动处理p值,生成自定义标记后合并到表格里,具体步骤如下:
- 先生成基础回归表格,包含需要的p值
library(gtsummary) library(dplyr) # 拟合模型并生成带全局p值的表格 tbl <- lm(marker ~ stage + grade, data = trial) |> tbl_regression() |> add_global_p()
- 写一个自定义函数,根据p值返回对应的标记符号
# 自定义符号规则:* p<0.1, + p<0.05; ++ p<0.01; +++ p<0.001 get_custom_marks <- function(p_val) { case_when( p_val < 0.001 ~ "+++", p_val < 0.01 ~ "++", p_val < 0.05 ~ "+", p_val < 0.1 ~ "*", TRUE ~ "" # p≥0.1时不加标记 ) }
- 修改表格内容,把p值和自定义符号合并
- 如果是给全局p值加标记:
tbl_final <- tbl |> modify_table_body( mutate, p.value = if_else(label == "Global p-value", paste0(p.value, get_custom_marks(as.numeric(p.value))), p.value) ) # 查看结果 tbl_final
- 如果是给每个协变量的p值加标记:
tbl_final_vars <- tbl |> modify_table_body( mutate, p.value = paste0(p.value, get_custom_marks(as.numeric(p.value))) ) # 查看结果 tbl_final_vars
原理就是利用modify_table_body直接操作表格的底层数据,结合自定义函数生成符合要求的标记,再和原p值拼接在一起,就能实现你要的自定义显著性符号规则了。
内容的提问来源于stack exchange,提问作者robertspierre
相关产品推荐
相关产品推荐

