如何在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()
关键说明
- 筛选配对样本:通过
group_by(id) %>% filter(n() == 2)保留所有同时拥有Preop和postop访视的id,确保数据集仅包含44组配对观测。 - 消除提示问题:筛选后统计描述与配对t检验使用同一批数据,不会出现“部分观测被剔除”的提示。
- 样本量正确显示:表格中
add_n()将展示两组各44个样本,符合配对分析的样本量展示需求。
内容的提问来源于stack exchange,提问作者Ahmed
相关产品推荐
相关产品推荐

