After upgrading to R 2.6.0, I'm having trouble running lmer: model <- lmer(primed ~ log(dist.time)*role + 1|target.utt, data=data.utts) Error in UseMethod("as.logical") : no applicable method for "as.logical" So I thought I'd upgrade lme4 to the latest version, but unfortunately the compilation fails - perhaps there's a missing #include: R CMD INSTALL -l ~/usr/lib/R lme4_0.99875-8.tar.gz * Installing *source* package 'lme4' ... ** libs gcc -std=gnu99 -I/home/dreitter/usr/lib/R/include -I/home/dreitter/ usr/lib/R/include -I/usr/local/include -I"/home/dreitter/usr/lib/R/ library/Matrix/include" -fpic -g -O2 -c glmer.c -o glmer.o glmer.c: In function ???internal_Gaussian_deviance???: glmer.c:185: error: ???CHM_SP??? undeclared (first use in this function) glmer.c:185: error: (Each undeclared identifier is reported only once glmer.c:185: error: for each function it appears in.) glmer.c:185: error: expected ???;??? before ???Lm??? glmer.c:186: error: ???CHM_FR??? undeclared (first use in this function) glmer.c:186: error: expected ???;??? before ???Lcp??? glmer.c:189: error: ???CHM_DN??? undeclared (first use in this function) glmer.c:189: error: expected ???;??? before ???Ltb??? glmer.c:195: error: ???Lcp??? undeclared (first use in this function) glmer.c:196: error: ???Lm??? undeclared (first use in this function) glmer.c:197: error: ???chb??? undeclared (first use in this function) glmer.c:197: error: ???Ltb??? undeclared (first use in this function) glmer.c: In function ???internal_bhat???: glmer.c:396: error: ???CHM_FR??? undeclared (first use in this function) glmer.c:396: error: expected ???;??? before ???L??? glmer.c:403: error: ???L??? undeclared (first use in this function) glmer.c: In function ???glmer_MCMCsamp???: glmer.c:657: error: ???CHM_FR??? undeclared (first use in this function) glmer.c:657: error: expected ???;??? before ???L??? glmer.c:680: error: ???L??? undeclared (first use in this function) make: *** [glmer.o] Error 1 ERROR: compilation failed for package 'lme4' I've installed Matrix_0.999375-3 and lattice_0.16-5. Any pointers would be appreciated. -- David Reitter ICCS/HCRC, Informatics, University of Edinburgh http://www.david-reitter.com
The first problem is an out-of-date Matrix install, and I am pretty sure the second is too since lme4 gets headers from the installed Matrix. It's possible that you installed Matrix somewhere that is not in the default .libPaths(), in which case you need to set R_LIBS appropriately when installing. Try R --vanilla .libPaths() library(Matrix) searchpaths() # and look where Matrix came from. sessionInfo() # and check the Matrix version packageDescription("Matrix") # and check the Built: line contains 2.6.0 On Thu, 11 Oct 2007, David Reitter wrote:> After upgrading to R 2.6.0, I'm having trouble running lmer: > > model <- lmer(primed ~ log(dist.time)*role + 1|target.utt, > data=data.utts) > Error in UseMethod("as.logical") : no applicable method for "as.logical" > > So I thought I'd upgrade lme4 to the latest version, but > unfortunately the compilation fails - perhaps there's a missing > #include: > > R CMD INSTALL -l ~/usr/lib/R lme4_0.99875-8.tar.gz > * Installing *source* package 'lme4' ... > ** libs > gcc -std=gnu99 -I/home/dreitter/usr/lib/R/include -I/home/dreitter/ > usr/lib/R/include -I/usr/local/include -I"/home/dreitter/usr/lib/R/ > library/Matrix/include" -fpic -g -O2 -c glmer.c -o glmer.o > glmer.c: In function ???internal_Gaussian_deviance???: > glmer.c:185: error: ???CHM_SP??? undeclared (first use in this function) > glmer.c:185: error: (Each undeclared identifier is reported only once > glmer.c:185: error: for each function it appears in.) > glmer.c:185: error: expected ???;??? before ???Lm??? > glmer.c:186: error: ???CHM_FR??? undeclared (first use in this function) > glmer.c:186: error: expected ???;??? before ???Lcp??? > glmer.c:189: error: ???CHM_DN??? undeclared (first use in this function) > glmer.c:189: error: expected ???;??? before ???Ltb??? > glmer.c:195: error: ???Lcp??? undeclared (first use in this function) > glmer.c:196: error: ???Lm??? undeclared (first use in this function) > glmer.c:197: error: ???chb??? undeclared (first use in this function) > glmer.c:197: error: ???Ltb??? undeclared (first use in this function) > glmer.c: In function ???internal_bhat???: > glmer.c:396: error: ???CHM_FR??? undeclared (first use in this function) > glmer.c:396: error: expected ???;??? before ???L??? > glmer.c:403: error: ???L??? undeclared (first use in this function) > glmer.c: In function ???glmer_MCMCsamp???: > glmer.c:657: error: ???CHM_FR??? undeclared (first use in this function) > glmer.c:657: error: expected ???;??? before ???L??? > glmer.c:680: error: ???L??? undeclared (first use in this function) > make: *** [glmer.o] Error 1 > ERROR: compilation failed for package 'lme4' > > I've installed Matrix_0.999375-3 and lattice_0.16-5. > > Any pointers would be appreciated. > > > -- > David Reitter > ICCS/HCRC, Informatics, University of Edinburgh > http://www.david-reitter.com > > ______________________________________________ > R-help at 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. >-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
On 10/11/07, David Reitter <dreitter at inf.ed.ac.uk> wrote:> After upgrading to R 2.6.0, I'm having trouble running lmer:> model <- lmer(primed ~ log(dist.time)*role + 1|target.utt, > data=data.utts) > Error in UseMethod("as.logical") : no applicable method for "as.logical"That problem originates in the Matrix package. You need to upgrade the Matrix package to version 0.999375-3 for R-2.6.0. After that the installed version of lme4 will function properly.> So I thought I'd upgrade lme4 to the latest version, but > unfortunately the compilation fails - perhaps there's a missing > #include:I think this might be a version skew with the Matrix package. Those macros are defined in a file in the .../R/library/Matrix/include directory that is added to the include path but you need a recent version of the Matrix package to get those particular macros.> R CMD INSTALL -l ~/usr/lib/R lme4_0.99875-8.tar.gz > * Installing *source* package 'lme4' ... > ** libs > gcc -std=gnu99 -I/home/dreitter/usr/lib/R/include -I/home/dreitter/ > usr/lib/R/include -I/usr/local/include -I"/home/dreitter/usr/lib/R/ > library/Matrix/include" -fpic -g -O2 -c glmer.c -o glmer.o > glmer.c: In function 'internal_Gaussian_deviance': > glmer.c:185: error: 'CHM_SP' undeclared (first use in this function) > glmer.c:185: error: (Each undeclared identifier is reported only once > glmer.c:185: error: for each function it appears in.) > glmer.c:185: error: expected ';' before 'Lm' > glmer.c:186: error: 'CHM_FR' undeclared (first use in this function) > glmer.c:186: error: expected ';' before 'Lcp' > glmer.c:189: error: 'CHM_DN' undeclared (first use in this function) > glmer.c:189: error: expected ';' before 'Ltb' > glmer.c:195: error: 'Lcp' undeclared (first use in this function) > glmer.c:196: error: 'Lm' undeclared (first use in this function) > glmer.c:197: error: 'chb' undeclared (first use in this function) > glmer.c:197: error: 'Ltb' undeclared (first use in this function) > glmer.c: In function 'internal_bhat': > glmer.c:396: error: 'CHM_FR' undeclared (first use in this function) > glmer.c:396: error: expected ';' before 'L' > glmer.c:403: error: 'L' undeclared (first use in this function) > glmer.c: In function 'glmer_MCMCsamp': > glmer.c:657: error: 'CHM_FR' undeclared (first use in this function) > glmer.c:657: error: expected ';' before 'L' > glmer.c:680: error: 'L' undeclared (first use in this function) > make: *** [glmer.o] Error 1 > ERROR: compilation failed for package 'lme4' > > I've installed Matrix_0.999375-3 and lattice_0.16-5. > > Any pointers would be appreciated. > > > -- > David Reitter > ICCS/HCRC, Informatics, University of Edinburgh > http://www.david-reitter.com > > ______________________________________________ > R-help at 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. >
Thank you both very much for your replies. The problem was indeed that the updated libraries were installed in the wrong place and the code below helped me solve this quickly. -- David Reitter ICCS/HCRC, Informatics, University of Edinburgh http://www.david-reitter.com On 11 Oct 2007, at 12:37, Prof Brian Ripley wrote:> > R --vanilla > .libPaths() > library(Matrix) > searchpaths() # and look where Matrix came from. > sessionInfo() # and check the Matrix version > packageDescription("Matrix") # and check the Built: line contains > 2.6.0On 11 Oct 2007, at 12:41, Douglas Bates wrote:> > That problem originates in the Matrix package. You need to upgrade > the Matrix package to version 0.999375-3 for R-2.6.0. After that the > installed version of lme4 will function properly.