我正在运行线性混合模型,并不断收到错误-
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
首先,我已经查看了有用的链接-Error in contrasts when defining a linear model in R
但是,当我尝试各种评估我的因子水平的方法时,summary(df)
,is.factor(df$variable)
,nlevels(df$variable)
和建议的ifelse(n <- sapply(m, function(x) length(levels(x))) == 1, "DROP", "NODROP")
,例如,后者在“每个变量。尽管nlevel(df $ variable)的状态为2,Summary(df)也可以准确地量化此因子的2个级别中的每个级别中有多少行。
一致地,我看到停止模型运行的特定变量(当我删除它时,模型运行没有问题)被指出具有两个正确的因素,并且在我看来应该运行。在使用不同的二进制因子变量运行此精确模型时,我没有遇到任何问题,但是这个问题似乎始终存在于这个因子问题中,因为检查似乎证实R将列视为2,因此对我来说这没有意义级因素。
我是否可以做一些事情来解决这个在前一个线程中没有提到的错误?没有外来字符-只是组织区域标识符的“ CB”和“ BA”。
确切的代码行如下。
models <- dlply(Controls, "PROTEIN", function(df) lmer(ABUNDANCE ~ REGION + PMI + AGE + (1|PEPTIDE), data=df, REML=FALSE))
区域是有问题的孩子。我也尝试options(lmerControl=list(check.nlev.gtr.1 = "ignore"))
无济于事。
感谢您的任何建议。