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

双向重复测量ANOVA报错:输出行需唯一键组合(rstatix包)

解决rstatix双向重复测量ANOVA的唯一键报错问题

问题根源

你的数据中,每个id(受试者)+treatment(处理)组合下对应多个species(物种)的观测值,而当前代码仅指定treatment为组内因素,导致rstatix无法识别唯一的重复测量单元,触发“输出的每一行必须由唯一的键组合标识”错误。

解决方案

根据你的研究设计选择对应方案:

方案1:双向重复测量ANOVA(两个组内因素)

如果treatment和species都是组内因素(即每个受试者在所有treatment和species组合下都有观测),修改代码同时指定两个组内因素:

library(rstatix)

res.aov <- anova_test(
  data = kolding,
  dv = count,
  wid = id,
  within = c(treatment, species)
)
get_anova_table(res.aov)

方案2:混合设计ANOVA(组间+组内因素)

如果species是组间因素(不同受试者对应不同物种),treatment是组内因素,使用between参数指定组间变量:

res.aov <- anova_test(
  data = kolding,
  dv = count,
  wid = id,
  between = species,
  within = treatment
)
get_anova_table(res.aov)

方案3:检查并清理重复观测

如果上述方案仍报错,先排查是否存在重复的id+treatment+species组合:

library(dplyr)
# 找出重复的观测组合
duplicate_rows <- kolding %>% 
  count(id, treatment, species) %>% 
  filter(n > 1)

# 若存在重复,可选择删除重复或取均值
kolding_clean <- kolding %>% 
  distinct(id, treatment, species, .keep_all = TRUE)
# 或取均值
kolding_clean <- kolding %>% 
  group_by(id, treatment, species) %>% 
  summarise(count = mean(count), .groups = "drop")

用清理后的kolding_clean重新运行ANOVA分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:32:25