2016-07-28 71 views
1

我想将零膨胀负二项式随机在R中使用glmmadmb()的效果模型。它们使用包中的数据时具有可重现性。glmmadmb R package:process_randformula(formula,random,data = data)中的错误和`colnames <-`('* tmp *`,value = character(0))中的错误

尝试1:

om1 <- glmmadmb(SiblingNegotiation~FoodTreatment*SexParent+offset(log(BroodSize)), 
       random=(1|Nest), 
       zeroInflation=TRUE,family="nbinom",data=Owls) 

给出了错误:

Error in process_randformula(formula, random, data = data) : 
    object 'Nest' not found 

尝试2:

om2 <- glmmadmb(SiblingNegotiation~FoodTreatment*SexParent+offset(log(BroodSize)), 
       random="~1|Nest", 
       zeroInflation=TRUE,family="nbinom",data=Owls) 

给出了错误:

Error in `colnames<-`(`*tmp*`, value = character(0)) : 
    attempt to set 'colnames' on an object with less than two dimensions 

如何使用random参数成功执行此函数调用?

回答

2

所以,以适应这种模式与random说法,试图从你的尝试2代码移除引号:

om3 <- glmmadmb(SiblingNegotiation~FoodTreatment*SexParent+offset(log(BroodSize)), 
       random=~1|Nest, 
       zeroInflation=TRUE,family="nbinom",data=Owls) 

或使用as.formula和报价:

om4 <- glmmadmb(SiblingNegotiation~FoodTreatment*SexParent+offset(log(BroodSize)), 
       random=as.formula("~1|Nest"), 
       zeroInflation=TRUE,family="nbinom",data=Owls) 

即相当于glmmadmb()的帮助页上给出的示例,该示例不使用random参数:

om5 <- glmmadmb(SiblingNegotiation~FoodTreatment*SexParent+ 
       (1|Nest)+offset(log(BroodSize)), 
       zeroInflation=TRUE,family="nbinom",data=Owls) 

> identical(om3$fitted, om5$fitted) 
[1] TRUE 
> identical(om4$fitted, om5$fitted) 
[1] TRUE 
> identical(om3$fitted, om4$fitted) 
[1] TRUE 
相关问题