Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

package car unable to load, wrong version of nlme

Tags:

r

nlme

r-car

When I try to load the 'car' package I get this error:

library(car)

Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : 
  namespace 'nlme' 3.1-122 is already loaded, but >= 3.1.123 is required
Error: package or namespace load failed for 'car'

But when I run update.packages() there is nothing to update. I'm using MRO 3.2.3 if that matters.

like image 477
Jon Sjöberg Avatar asked Feb 17 '16 22:02

Jon Sjöberg


2 Answers

I had the same problem and solved it simply by installing nlme_3.1-123.tar.gz from https://cran.r-project.org/src/contrib/Archive/nlme/

like image 161
Tom Wenseleers Avatar answered Nov 12 '22 23:11

Tom Wenseleers


The ultimate cause of your problem is most likely that MRO defaults to a static repository:

By default, Microsoft R Open offers its users predictability using a static CRAN snapshot date. For example, the CRAN repository for Microsoft R Open 3.2.3 is configured to point to a snapshot date of Jan 1, 2016. Consequently, with Microsoft R Open 3.2.3 you'll always get packages as they were at midnight UTC on Jan 1, 2016 by default whenever you use install.packages.

Using a fixed CRAN repository snapshot means that every user of Microsoft R Open has access to the same set of CRAN package versions. This makes sharing R code that relies on R packages easier, and reduces the chance of incompatible R packages being installed on the same system. Learn more about fixed CRAN repository snapshots.

Try

install.packages("nlme",repos="http://cran.r-project.org")

or possibly

install.packages("nlme",repos="http://cran.r-project.org",type="binary")

(if you get a type == "both" cannot be used ... error).

Another possible source of problems with new versions of recommended packages is that one may have the old version installed in a system-level package directory, while the new version is installed in a user-level directory; check the results of

sapply(.libPaths(),packageVersion,pkg="nlme") 

and consider adding something like lib=.libPaths()[2] to your install.packages() call.

like image 24
Ben Bolker Avatar answered Nov 12 '22 23:11

Ben Bolker