如何在gtsummary中正确设置group参数执行配对Wilcoxon检验?
解决配对Wilcoxon检验的group参数问题
问题根源
- 测试数据缺少配对标识变量:配对检验要求每组观测有明确的配对关系(比如同一样本的前后测数据),当前数据仅按
class分组,但没有标识哪些行是一对。 test.args中变量引用方式错误:直接写group=class会导致环境找不到变量,且group参数的作用是指定配对标识,而非分组变量。
正确解决方案
步骤1:调整数据结构,添加配对标识
新增id列,明确标注每一对观测:
library(dplyr) library(gtsummary) library(tibble) data <- tribble( ~id, ~icu, ~los, ~class, 1, 4, 6, 0, 1, 5, 8, 1, 2, 0, 2, 0, 2, 25, 50, 1, 3, 3, 9, 0, 3, 11, 15, 1 )
步骤2:正确调用add_p
用.data$id指定配对标识,by=class保留为分组变量(配对的两组):
data %>% tbl_summary( by = class, type = list(icu ~ "continuous", los ~ "continuous") ) %>% add_p( all_continuous() ~ "paired.wilcox.test", test.args = all_continuous() ~ list(group = .data$id) )
关键说明
.data$id是gtsummary推荐的列引用方式,能避免环境变量找不到的错误。group参数的核心作用是告诉检验函数:哪些观测属于同一配对,不要和分组变量class混淆。
内容的提问来源于stack exchange,提问作者John Ryan
相关产品推荐
相关产品推荐

