首页 > 解决方案 > 对于具有 2 个级别和两个级别上的值的变量,错误“对比只能应用于具有 2 个或更多级别的因素”

问题描述

我正在尝试运行 MANOVA 并遇到错误:

Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : contrasts can be applied only to factors with 2 or more levels

我知道当一个变量只有 1 个级别,或者有多个级别但只有其中 1 个级别的值时,就会发生这种情况。我有两个变量会导致此错误,但是,它们的表格结果是:

$varA

 No Yes 
 81 314 

$varB

 No Yes 
 35 363

在重新编码这两个变量的一个级别后会出现此问题。细胞计数太低(分别为 5 和 2),因此我将它们重新编码为 NA。然后我删除未使用的级别:

df$varA[df$varA=="unusableLevel"] <- NA
df$varB[df$varB=="unusableLevel"] <- NA
df <- droplevels(df)

这两个变量都被正确地指定为因子。我尝试使用不同的方法将不可用的级别重新编码为 NA。我一直在为此挠头。不幸的是,我不能生成一个最小的可重现示例,因为我不允许以任何形式共享任何数据。

谢谢你的帮助!

标签: r

解决方案


推荐阅读