2016-02-17 15 views
8

Khi tôi cố gắng để tải gói 'xe' Tôi nhận được lỗi này:gói xe không thể tải, phiên bản sai của 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' 

Nhưng khi tôi chạy update.packages() không có gì để cập nhật được. Tôi đang sử dụng MRO 3.2.3 nếu có vấn đề.

+0

Phiên bản yêu cầu có thể không có sẵn cho phiên bản R của bạn? – Benjamin

+1

Vấn đề có vẻ là bằng cách nào đó một phiên bản cũ của 'nlme' là một phần của r-base và được nạp thay vì phiên bản mới sẽ được tải bình thường nếu bạn chỉ tải' nlme' qua 'library()'. Một giải pháp có thể tải 'nlme' trước khi thủ công khi phiên bản sai chưa được tải. –

Trả lời

2

Nguyên nhân cơ bản của vấn đề của bạn rất có thể là 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.

Hãy thử

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

hoặc có thể

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

(nếu bạn gặp lỗi type == "both" cannot be used ...).

Một vấn đề khác có thể xảy ra với phiên bản mới của gói được đề xuất là gói có thể có phiên bản cũ được cài đặt trong thư mục gói hệ thống, trong khi phiên bản mới được cài đặt trong thư mục cấp người dùng; kiểm tra kết quả của

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

và xem xét thêm một số thứ như lib=.libPaths()[2] vào cuộc gọi install.packages() của bạn.

Các vấn đề liên quan