lme4 upgrade在`[[< - 。data.frame`(`* tmp *`,i,value = integer(0))中产生错误消息错误

时间:2013-10-17 16:10:26

标签: r lme4

上周我用lmer(lme4)构建了一个广义混合线性模型,效果很好:

fit<-lmer(dat$presence~log(dat$SIZE_strict)*dat$Troph_level+log(dat$HAB500EXCL_strict+1)+(1|dat$dataset), family=poisson, REML=FALSE)

然而,在更新lme4软件包之后,模型不再有效,给出错误消息:

Error in `[[<-.data.frame`(`*tmp*`, i, value = integer(0)) : 
  replacement has 0 rows, data has 174
In addition: Warning messages:
1: In lmer(dat$presence ~ log(dat$SIZE_strict) * dat$Troph_level +  :
  calling lmer with 'family' is deprecated; please use glmer() instead
2: In checkArgs("glmer", REML = FALSE) :
  extra argument(s) ‘REML’ disregarded

使用glmer而不是lmer没有解决第一条错误消息。任何建议都将非常感谢!

以下是一些数据(称为dat):

Troph_level presence    dataset SIZE_strict HAB500EXCL_strict
carnivorous 2   1   46155   26005
carnivorous larvae  0   1   46155   26005
phytophagous    2   1   46155   26005
phytophagous    0   3   195295  360882
carnivorous 0   3   195295  360882
carnivorous larvae  0   3   195295  360882
phytophagous    4   2   18272   21169
carnivorous larvae  0   2   18272   21169
carnivorous 1   2   18272   21169
carnivorous 1   2   24964   26745
carnivorous larvae  0   2   24964   26745
phytophagous    4   2   24964   26745
phytophagous    5   2   6220    12543
carnivorous larvae  0   2   6220    12543
carnivorous 1   2   6220    12543
phytophagous    0   3   102633  12198
carnivorous larvae  0   3   102633  12198
carnivorous 0   3   102633  12198
phytophagous    0   3   2092    291439
carnivorous larvae  1   3   2092    291439
carnivorous 0   3   2092    291439
phytophagous    3   5   80410   0

非常感谢提前! Toos van Noordwijk

1 个答案:

答案 0 :(得分:1)

这是lme4新版本中的一个小问题(将在即将发布的补丁版本中修复),该版本要求在data参数指定的数据框中找到分组变量。一般情况下,如果您使用data参数并使用dat$var形式的变量避免使用,那么事情会更顺畅(并且您的代码将更容易阅读),例如:

fit <- glmer(presence~log(SIZE_strict)*Troph_level+log(HAB500EXCL_strict+1)+
  (1|dataset), family=poisson, data=dat)