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

使用ggstatsplot包grouped_ggbetweenstats函数报错,求排查与解决方法

解决ggstatsplot::grouped_ggbetweenstats的unique()错误问题

在使用ggstatsplot包的grouped_ggbetweenstats函数时,重复出现以下错误:

Error in unique.default(x, nmax = nmax) : 
  unique() puede ser aplicada solamente a vectores

可复现代码

lapply(c("rstatix", "ggstatsplot", "openintro"), require, character.only = TRUE)
print(hsb2)
grouped_ggbetweenstats(data = hsb2, x=prog, y= math, grouping.var = gender, results.subtitle=F, messages=F, var.equal=T, p.adjust.method="holm")

错误原因

该错误是ggstatsplot旧版本与rstatix包交互时的已知bug:当指定var.equal=TRUE(要求执行方差齐性的单因素ANOVA)时,函数内部调用rstatix::anova_test时,错误地将数据框而非向量传入unique()函数,而unique()仅支持向量类型输入。

解决方法

  • 优先方案:更新ggstatsplot到最新稳定版
    开发团队已经在后续版本中修复了这个参数交互bug,执行以下命令更新包:

    install.packages("ggstatsplot")
    

    更新完成后,直接运行原代码即可正常生成分组的组间统计图形。

  • 临时规避方案(无法更新包时)
    如果暂时无法更新包,可以移除var.equal=TRUE参数,改用默认的Welch方差分析(该方法不要求方差齐性,适用于大多数场景):

    grouped_ggbetweenstats(
      data = hsb2,
      x = prog,
      y = math,
      grouping.var = gender,
      results.subtitle = FALSE,
      messages = FALSE,
      p.adjust.method = "holm"
    )
    

    若必须使用方差齐性的ANOVA,可以先手动用rstatix::anova_test完成统计检验,再在grouped_ggbetweenstats中不指定var.equal,手动添加统计结果作为subtitle。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 13:01:55