R语言分组执行wilcoxon-rank-sum-test出现p值全部相同问题排查
错误原因
你的代码核心问题出在map的匿名函数参数调用逻辑:拆分出每个Soll对应的分组子集后,你没有将子集传入wilcox.test函数,反而每次都指定data = BF_all_soll调用全量数据集做检验,因此所有分组返回的都是全量数据的检验结果,p值自然完全相同。
修正代码
library(tidyverse) library(broom) BF_all_soll %>% split(.$Soll) %>% # .x指代split得到的每个Soll分组子集 map(~ wilcox.test(Feuchte ~ Transtyp, data = .x)) %>% # 加.id参数直接将分组的Soll值作为列保留,输出结果可直接匹配对应分组 map_dfr(tidy, .id = "Soll") -> bla
补充说明
你提供的示例数据中,每个Soll分组下两个Transtyp水平各只有1个观测值,运行上述代码会弹出无法计算精确p值的警告,这是示例数据样本量过小导致的,你的真实数据只要每组样本量充足就不会出现该问题。
内容的提问来源于stack exchange,提问作者Effigy
相关产品推荐
相关产品推荐

