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

如何修改gtsummary包的显著性星号标记规则?

实现gtsummary自定义显著性符号的方法

因为add_significance_stars只能用星号(*),没法直接替换成+这类符号,所以得手动处理p值,生成自定义标记后合并到表格里,具体步骤如下:

  1. 先生成基础回归表格,包含需要的p值
library(gtsummary)
library(dplyr)

# 拟合模型并生成带全局p值的表格
tbl <- lm(marker ~ stage + grade, data = trial) |>
  tbl_regression() |>
  add_global_p()
  1. 写一个自定义函数,根据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时不加标记
  )
}
  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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 17:24:49