我正在尝试运行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。我已经为此挠了一下头。不幸的是,由于我不允许以任何形式共享任何数据,因此我无法提供一个最小的可复制示例。
感谢您的帮助!