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

Mann-Whitney U检验对象未找到报错的解决与代码修正

问题解决:wilcox.test报错修复及代码正确性验证

一、报错原因与修复

报错“object 'PREOP_MPTA' not found”的核心原因是未正确指定变量所在的数据框环境:

  • 直接使用变量名PREOP_MPTA,R无法定位到DLO_HYBRID数据框中的对应变量;
  • 原代码末尾直接写DLO_HYBRID未指定参数名,R无法识别这是数据来源。

两种修复写法:

  1. 用$明确引用数据框变量
wilcox.test(DLO_HYBRID$PREOP_MPTA, DLO_HYBRID$POSTOP_MPTA, 
            alternative = "two.sided", mu = 0, 
            paired = FALSE, exact = NULL, correct = TRUE,
            conf.int = FALSE, conf.level = 0.95, 
            tol.root = 1e-4, digits.rank = Inf)
  1. 用data参数指定数据框
wilcox.test(PREOP_MPTA, POSTOP_MPTA, 
            data = DLO_HYBRID,
            alternative = "two.sided", mu = 0, 
            paired = FALSE, exact = NULL, correct = TRUE,
            conf.int = FALSE, conf.level = 0.95, 
            tol.root = 1e-4, digits.rank = Inf)

二、原代码的正确性问题

你的场景是同一样本的术前术后配对数据,原代码存在关键逻辑错误:

  • 错误使用paired = FALSE:Mann-Whitney U检验(paired=FALSE)适用于独立样本,而配对样本的非参数检验应该用Wilcoxon符号秩检验,需将paired设为TRUE。
  • 多余语法:alternative = ("two.sided")中的括号可以省略,直接写alternative = "two.sided"即可。

正确的配对Wilcoxon检验代码

针对你的配对数据场景,推荐两种更合理的写法:

  1. 直接指定配对变量
wilcox.test(PREOP_MPTA, POSTOP_MPTA, 
            data = DLO_HYBRID,
            alternative = "two.sided", 
            mu = 0, 
            paired = TRUE, 
            correct = TRUE)
  1. 利用已有的差值变量DELTA-MPTA(注意变量名含连字符,需用反引号括起)
wilcox.test(DLO_HYBRID$`DELTA-MPTA`, 
            mu = 0, 
            alternative = "two.sided")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:10:14