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

如何在gtsummary配对p值表格中查看计算p值的样本量

解决gtsummary配对分析中样本量显示与缺失值提示问题

问题原因

原数据中存在仅单次访视的id,这类观测会被纳入统计描述但在配对t检验时被排除,导致样本量显示不符且出现缺失值提示。要解决这个问题,需先筛选出仅包含配对观测的数据集,再生成统计表格。

解决方案代码

require(dplyr)
require(gtsummary)

data_sample <- structure(list(id = c(104L, 107L, 118L, 118L, 119L, 120L, 120L, 
                              122L, 124L, 125L, 127L, 128L, 145L, 146L, 147L, 149L, 172L, 173L, 
                              174L, 175L, 175L, 176L, 176L, 178L, 178L, 181L, 181L, 182L, 182L, 
                              183L, 183L, 184L, 185L, 185L, 186L, 186L, 187L, 187L, 188L, 188L, 
                              190L, 190L, 192L, 192L, 195L, 195L, 196L, 196L, 197L, 197L, 198L, 
                              198L, 199L, 200L, 200L, 201L, 201L, 202L, 202L, 204L, 204L, 205L, 
                              205L, 206L, 206L, 207L, 208L, 208L, 209L, 209L, 210L, 210L, 211L, 
                              211L, 212L, 212L, 213L, 213L, 214L, 214L, 215L, 215L, 217L, 217L, 
                              219L, 219L, 221L, 221L, 223L, 223L, 224L, 224L, 225L, 225L, 226L, 
                              226L, 227L, 227L, 228L, 228L), visit = structure(c(1L, 1L, 1L, 
                                                                                 2L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
                                                                                 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 
                                                                                 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
                                                                                 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 
                                                                                 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
                                                                                 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
                                                                                 2L), levels = c("Preop", "postop"), class = "factor"), 
                       differ = c(6, 5, 6, 2, 5, 6, 1, 6, 4, 4, 4, 5, 1, 1, 1, 
                                     2, 1, 1, 4, 6, 1, 1, 1, 4, 1, 2, 1, 6, 5, 3, 1, 1, 5, 2, 
                                     6, 1, 6, 1, 5, 2, 1, 1, 6, 1, 2, 1, 2, 1, 1, 1, 6, 1, 1, 
                                     4, 5, 3, 2, 1, 1, 1, 1, 4, 1, 2, 1, 4, 1, 1, 1, 1, 2, 1, 
                                     3, 1, 4, 4, 2, 1, 4, 1, 4, 3, 6, 1, 1, 1, 2, 1, 3, 1, 2, 
                                     1, 3, 1, 6, 1, 1, 1, 1, 1)), row.names = c(NA, -100L), class = c("tbl_df", 
                                                                                                      "tbl", "data.frame"))

# 筛选仅包含两次访视的配对样本
paired_data <- data_sample %>%
  group_by(id) %>%
  filter(n() == 2) %>%
  ungroup()

# 生成配对分析统计表格
paired_data %>% 
  tbl_summary(
    by = visit,
    include = differ,
    type = differ ~ "continuous",
    missing = "ifany"
  ) %>%
  add_n() %>%
  add_difference(test = everything() ~ 'paired.t.test', group = "id") %>% 
  bold_p()

关键说明

  1. 筛选配对样本:通过group_by(id) %>% filter(n() == 2)保留所有同时拥有Preop和postop访视的id,确保数据集仅包含44组配对观测。
  2. 消除提示问题:筛选后统计描述与配对t检验使用同一批数据,不会出现“部分观测被剔除”的提示。
  3. 样本量正确显示:表格中add_n()将展示两组各44个样本,符合配对分析的样本量展示需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:00:59