2016-02-17 13 views
8

Wenn ich versuche, das ‚Auto‘ Paket zu laden, bekomme ich diesen Fehler:Paket Auto nicht in der Lage zu laden, falsche Version von nlme

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' 

Aber wenn ich update.packages() laufen gibt es nichts zu aktualisieren. Ich verwende MRO 3.2.3, wenn das wichtig ist.

+0

Die erforderliche Version ist möglicherweise nicht für Ihre Version von R verfügbar? – Benjamin

+1

Das Problem scheint zu sein, dass irgendwie eine alte Version von 'nlme' Teil von r-base ist und anstelle der neuen Version geladen wird, die normalerweise geladen würde, wenn man' nlme' über 'library()' lädt. Eine Lösung könnte sein, 'nlme' vorher manuell zu laden, wenn die falsche Version noch nicht geladen ist. –

Antwort

2

Die ultimative Ursache des Problems ist sehr wahrscheinlich, dass MRO defaults to a static repository Installation:

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.

Versuchen

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

oder möglicherweise

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

(wenn Sie einen type == "both" cannot be used ... Fehler erhalten).

Eine weitere mögliche Quelle für Probleme mit neuen Versionen von empfohlen Pakete ist, dass die alte Version in einem Paketverzeichnis auf Systemebene installiert sein kann, während die neue Version in einem Verzeichnis auf Benutzerebene installiert ist; Überprüfen Sie die Ergebnisse der

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

und betrachten so etwas wie lib=.libPaths()[2] zu Ihrem install.packages() Gespräch hinzugefügt.