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

gt_summary中add_difference后仅留差值列并添加非参数检验P值的方法

解决方法

核心思路是先保留add_difference生成的所有列,添加非参数检验的P值列后,再隐藏不需要的旧列,避免直接隐藏列后调用add_p引发的冲突。以下是具体实现代码:

library(gt)
library(gtSummary)

# 使用内置trial数据集演示
result_tbl <- trial %>%
  # 选择分组变量和分析变量
  select(trt, age, marker, response) %>%
  # 生成基础分组统计表格
  tbl_summary(by = trt, missing = "no") %>%
  # 生成差值列(同时会生成默认的p.value和ci列,后续隐藏)
  add_difference() %>%
  # 添加非参数检验的P值:连续变量用Wilcoxon检验,分类变量按需指定
  add_p(
    test = list(
      all_continuous() ~ "wilcox.test",  # 连续变量非参数检验
      all_categorical() ~ "chisq.test"   # 分类变量可按需调整检验方法
    ),
    pvalue_fun = ~style_pvalue(.x, digits = 3),  # P值格式化
    column_name = "p_nonparametric"  # 给新P值列命名,避免与旧列重名
  ) %>%
  # 隐藏add_difference生成的默认p.value和ci列
  modify_column_hide(c(p.value, ci)) %>%
  # 调整列顺序,让差值列和非参数P值列相邻
  modify_column_order(c(label, stat_1, stat_2, difference, p_nonparametric))

# 输出表格
result_tbl

关键说明

  1. 不要先调用modify_column_hide:直接隐藏列后调用add_p会因表格对象内部的列冲突报错,需先保留所有列完成新P值的添加。
  2. 精准指定检验方法:通过add_p的test参数,用all_continuous()选择器批量给连续变量指定非参数检验(如Wilcoxon秩和检验),分类变量可根据需求调整检验方法。
  3. 重命名新P值列:避免与add_difference生成的默认p.value列重名,确保表格结构清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:15:28