我在2013版本中运行了lmerTest和lmer:
> library(lmerTest)
> data1.frame <- read.delim("colorness.txt", fileEncoding="UTF-16")
> str(data1.frame)
> lmer3 <- lmerTest::lmer(duration ~ (1|item) + (1+color|speaker) + group*color*sex, data=data1.frame, REML=FALSE, na.action=na.omit)
lmer3对我来说很好。当我在str(data1.frame)中检查数据时,没有任何错误。
但是当我把这个命令
> summary(lmer3)
它给了我这样的信息:
Error in `colnames<-`(`*tmp*`, value = c("Estimate", "Std. Error", "df", :
length of 'dimnames' [2] not equal to array extent
但是,我确信我的数据没有任何问题,因为我可以在R版本2009中运行lmer。你知道如何解决这个问题吗?问题是,如果我坚持使用R版本2009,那么我无法从lmerTest获得p值,而且我不知道如何从似然比测试中得到它。你对此有什么想法吗?
答案 0 :(得分:2)
很抱歉发布此答案,但我仍然没有足够的“声誉”来评论。 我认为这是一个错误和/或取决于数据,因为我有同样的问题。我有一个大型数据集,模型使用循环通过它逐行运行。一切都适用于前26,478次测试(34,713次),但在下一个循环中停止,并出现相同的错误。 所以:
1)它不是包的版本,因为它适用于我的数据集的3/4 2)它不是sintax,因为在前几万个模型中我的一切都运行良好,而且我之前运行的ANOVA对着一个空模型。
我的代码大致是:
for (i in 1:nrow(dataset)){
dataframe<-as.data.frame(dataset[i,]);
lm.R<-lmer(response ~ treatment + (1|ran)+(1|rep), dataframe, REML= FALSE);
x<-summary(lm.R);
p.val[i,]<-x$coefficients[,"Pr(>|t|)"];
}
当i = 26479时,我得到同样的错误
Model is not identifiable...
Error in `colnames<-`(`*tmp*`, value = c("Estimate", "Std. Error", "df", :
length of 'dimnames' [2] not equal to array extent
我的数据在那一行很好(我是双重检查),我看不出任何不规则性。即使是针对null模型的ANOVA(我强烈建议你这样做,因为它给你的模型的p值,loglike,AIB等)也能很好地工作。
lm.null<-lmer(response ~ 1 + (1|ran)+(1|rep), dataframe, REML= FALSE);
lm.R<-lmer(response ~ treatment + (1|ran)+(1|rep), dataframe, REML= FALSE);
anova(lm.null,lm.R);