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

R语言中非参数MANOVA:双因子组合多组均值差异对比

问题解决与分析方法

一、汇总统计错误的原因与修复

你的错误根源是使用cbind()构造数据时,矩阵只能存储单一数据类型,导致数值型的value被强制转换为字符型,后续转成data.table时出现类型混乱。直接用data.table()创建数据集就能保留各列原始类型,解决这个问题:

library(data.table)
value <- rnorm(100, mean = 100, sd = 36)
group <- c(rep(c("A", "B", "C"), 33), "C")
gender <- c(rep(c("M", "F"), 50))  
test <- data.table(value, group, gender)  # 直接创建data.table,避免类型强制转换

# 重新执行汇总统计即可正常运行
library(rstatix)
testSummary <- test %>%
  group_by(group, gender) %>%
  get_summary_stats(value, type = "common")

二、非正态分布下6组(group+gender组合)的成对比较方法

不需要分两次执行,只需先创建组合分组变量,把group和gender合并为一个新因子,就能一次性完成所有6组的成对Wilcoxon检验:

1. 创建组合分组

# 生成形如"A-M" "A-F"的组合分组
test[, group_gender := interaction(group, gender, sep = "-")]

2. 执行一次性成对检验

pairwise.wilcox.test(test$value, g = test$group_gender, 
                     p.adjust.method = "holm")

运行后会直接输出6组之间所有两两比较的校正后P值,一步完成所有成对对比。

补充:先做整体差异检验

如果需要先判断6组整体是否存在差异,可以用Kruskal-Wallis检验(非参数版方差分析):

kruskal.test(value ~ group_gender, data = test)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:50:35