(p < - ncol(X))== ncol(Y)在glmer中不是TRUE错误

时间:2016-07-29 16:21:27

标签: r lme4

我正在尝试使用glmer来匹配模型并且我一直收到错误:

  

错误:(p&lt; - ncol(X))== ncol(Y)不为TRUE

这是一个大型模型,具有8个功能和数千个点。在研究这个bug时,我发现它可能是由NA太多引起的。我查看了我的功能,其中只有一个有NA个。然后我从我的模型中排除了该功能,但我仍然得到了错误。数据太大,无法发布。

http://r.789695.n4.nabble.com/Error-from-lme4-quot-Error-p-lt-ncol-X-ncol-Y-is-not-TRUE-quot-td4712617.html

模型如下:

covariates=c("Sex", "PC1", "PC2", "PC3", "PC4", "label", "Alive")

fix.eff=paste("outcome","~",xi)

if (!is.null(covariates)) {for (covi in covariates)  fix.eff=paste(fix.eff,"+",covi) }

fix.eff=formula(paste(fix.eff, "+(1|",ind.family,")")) 

fit <- try(glmer(fix.eff,family=binomial(link='logit'), data=x))

1 个答案:

答案 0 :(得分:1)

问题出在以下几行:

fix.eff=formula(paste(fix.eff, "+(1|",ind.family,")")) 

应该是

fix.eff=formula(paste(fix.eff, "+(1| ind.family)")) 

ind.family是数据集x.中的一列。它的原始编写方式是将其作为当前值而不是列读入。因此公式中包含术语(1|1)而不是(1|ind.family)。现在它已经修复了,它确实有效!

如果有其他人收到此错误,我建议您仔细查看您的公式和数据,以确保它符合您的想法。