With the example you provided, it seems both glht() and contrast()  
work fine.

Based on my limited experience with contrast(), if you encounter such  
an error message you just mentioned, check

 > dat.lme$apVar

You might see something like this

  [1] "Non-positive definite approximate variance-covariance"

which may indicate an inappropriate model for the data?

Gang


On Jan 11, 2008, at 6:04 PM, array chip wrote:

> Hi, I have been trying glht() from multcomp package
> and contrast() from contrast package to test a
> contrast that I am interested in.
>
> With the following simulated dataset (fixed effect
> "type" with 3 levels (b, m, t), and random effect
> "batch" of 4 levels, a randomized block design with
> interaction), sometimes both glht() and contrast()
> worked and gave nearly the same p values; other times,
> glht()worked, but contrast() didn't and gave the error
> message:
> "Error in dimnames(X) <- list(dn[[1L]],
> unlist(collabs, use.names = FALSE)) : length of
> 'dimnames' [2] not equal to array extent".
>
> so apparently, the error message from contrast() is
> data dependent. glht() always worked.
>
> Here is the code, I just copy and paste in R
> repeatedly:
>
> batch<-as.factor(rep(1:4,3,each=20))
> type<-as.factor(rep(c('b','m','t'),each=80))
> y<-2*(type=='m')+4*(type=='t')+rnorm(240,100,20)
> dat<-cbind(as.data.frame(y),type=type,batch=batch)
> rm(batch,type,y)
>
> library(nlme)
> dat.lme<-lme(y~type, random=~1|batch/type, data=dat)
>
> library(multcomp)
> summary(glht(dat.lme, linfct = mcp(type
> =c("b+t-2*m=0"))),test=Chisqtest())
>
> library(contrast)
> contrast(dat.lme, a=list(type=c('b','t')),
>             b=list(type='m'),type='average')
>
> Does anybody have a clue?
>
> Thanks,
>
> John
>
>
>        
> ______________________________________________________________________ 
> ______________
> Never miss a thing.  Make Yahoo your home page.
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting- 
> guide.html
> and provide commented, minimal, self-contained, reproducible code.


	[[alternative HTML version deleted]]


