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

dplyr管道中调用rstatix的shapiro_test提示variable不存在报错如何解决

报错原因

你当前使用的rstatix包版本存在已知bug,shapiro_test()函数处理自定义列名的分组长表时,会硬编码查找名为variable的分组标识列。你用pivot_longer转换长表时,将原本默认的variable列自定义命名为了s,因此函数找不到所需列触发报错。

解决方案

有两种可行方案,你可以按需选择:

  • 方案1:适配旧版本rstatix的规则,转长表时保留默认列名,后续有需要再重命名
    library(rstatix)
    normality_table <- df %>%
      # 省略names_to参数,转长后分组标识列默认名为variable
      tidyr::pivot_longer(., -c(A, C, D)) %>%
      group_by(D, variable) %>% 
      shapiro_test(value) %>%
      # 若需要保留s作为列名,检验完成后重命名即可
      rename(s = variable)
    
  • 方案2:升级rstatix到最新正式版,新版本已经修复了该硬编码问题,你原本的代码无需修改即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:06:02