Cài đặt phiên bản cũ hơn của gói R


134

Tôi đang cố gắng sử dụng Rpy2 và ggplot2 nhưng tôi gặp lỗi. Sau một số tìm kiếm lỗi trực tuyến, tôi thấy rằng lỗi xảy ra do có những thay đổi trong gói ggplot2 chưa được phản ánh trong Rpy2 (ví dụ: xem bài đăng này (Chỉnh sửa: Liên kết hiện đã chết)).

Vì vậy, bây giờ tôi cần cài đặt một phiên bản cũ hơn của ggplot2. Đây là mã giả cho những gì tôi muốn:

install.packages("ggplot2", version='0.9.1')

Nhưng install.packages không có một versioncuộc tranh cãi . Tôi phải làm nó như thế nào?


Câu trả lời:


150

Để cài đặt phiên bản cũ hơn của gói từ nguồn (trong R):

packageurl <- "http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz"
install.packages(packageurl, repos=NULL, type="source")

Nếu điều này không phù hợp với bạn và bạn trên Windows, thì lý do có lẽ là thiếu chuỗi công cụ thích hợp để xây dựng / biên dịch gói . Thông thường bạn sẽ cài đặt nhị phân được biên dịch sẵn từ CRAN nhưng họ chỉ lưu trữ các nguồn gói , không phải nhị phân. [1] Điều này có nghĩa là bạn cần cài đặt Rtools để bạn có thể biên dịch mọi thứ cục bộ. (Lưu ý: Rtools không phải là gói R. )

Câu trả lời của @ bóng dưới đây cũng làm cho trường hợp mà bạn có thể sử dụng devtools::install_version(). Đó cũng là một ý tưởng tốt, nhưng cũng có thể cần Rtools trên Windows.

Kể từ ngày 18 tháng 9 năm 2015, một phiên bản gói mới đã xuất hiện trên CRAN . Điều này phụ thuộc vào máy chủ Revolution Analytics MRAN để cài đặt các gói cho các phiên bản hoặc ngày cụ thể:

# install yesterday's version of checkpoint, by date
install.dates('checkpoint', Sys.Date() - 1)

# install earlier versions of checkpoint and devtools
install.versions(c('checkpoint', 'devtools'), c('0.3.3', '1.6.1'))

Điều đó có lợi thế là không yêu cầu Rtools cài đặt các gói nhị phân trên Windows, mà chỉ hoạt động từ năm 2014-09-17 (khi MRAN được ra mắt).

Để cài đặt phiên bản cũ hơn từ dòng lệnh (bên ngoài R):

Bạn cũng có thể cài đặt gói bằng cách sử dụng R CMD INSTALLtrên dòng lệnh (Terminal, Command Prompt, v.v.) một khi bạn có nguồn gói ("tarball") cục bộ trên máy của mình, ví dụ như sử dụng wget(nếu bạn có):

wget http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz

hoặc, nếu bạn đang ở trên Windows, tương đương sử dụng PowerShell sẽ là:

(new-object System.Net.WebClient).DownloadFile("http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz", "./ggplot2_0.9.1.tar.gz")

hoặc bạn chỉ có thể tải xuống nguồn từ kho lưu trữ CRAN thông qua trình duyệt web của bạn.

Để cài đặt từ tệp cục bộ, bạn chỉ cần làm:

R CMD INSTALL ggplot2_0.9.1.tar.gz

Điều đó sẽ hoạt động trên bất kỳ nền tảng nào (có cùng cảnh báo - như trên - về việc cần một chuỗi công cụ để xây dựng các gói).


[1] Điều này không còn hoàn toàn đúng nữa. Từ tháng 3 năm 2016, CRAN đã bắt đầu lưu trữ một máy chủ "CRAN Archive" có chứa các tệp nhị phân Windows và Mac cho các phiên bản R rất cũ (> 5 tuổi). Bây giờ bạn có thể cài đặt trực tiếp từ máy chủ này bằng cách sử dụng install.packages(). Xem R FAQ 7.44 mới để biết một số chi tiết.


4
Cảm ơn bạn, tôi đoán đó là cách chính xác. Quá tệ, bây giờ tôi nhận được: Warning message: package ‘http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz’ is not available (for R version 2.15.2)
hirolau

3
Có một vấn đề tương tự với Rcpp. Điều này có thể là do sự phụ thuộc phiên bản R của gói (DEPENDS: <phiên bản>) hoặc có thể là phiên R đang chạy sẽ không cho phép bạn thực hiện cập nhật. Những gì tôi tìm thấy làm việc cho tôi là thực hiện cập nhật theo cách mà Mark Butler (bên dưới) đã đề xuất (R CMD INSTALL your_version.tar.gz). Đây là cho R 2.15.3 trong trường hợp của tôi.
Robert Casey

@Antoine Bạn có trên Windows không? Và, nếu vậy, bạn đã cài đặt Rtools chưa?
Thomas

@Thomas Cảm ơn bạn đã phản hồi. Có, tôi đang ở trên Windows với Rtools "giả cài đặt" xem chủ đề này .
Antoine

@Thomas Tôi sẽ cố gắng chạy tập lệnh của mình trên Amazon EC2 để tránh các sự cố cục bộ rõ ràng trên máy của mình (đường dẫn thư viện, phiên bản của R so với các phiên bản của gói, các vấn đề biên dịch, v.v.)
Antoine

87

Các remotesgói cung cấp một install_versionchức năng có thể làm điều này trực tiếp.

require(remotes)
install_version("ggplot2", version = "0.9.1", repos = "http://cran.us.r-project.org")

Trước đây, câu trả lời này chỉ vào devtoolsgói, cũng tái xuất install_versionhàm. Cảm ơn @MichaelChirico đã chỉ ra rằng remotesgói này là thích hợp hơn.


bạn có thể giữ nhiều phiên bản của cùng một gói mà không cần phải install_versiontải mỗi phiên bản cụ thể không? nói,library(ggplot2-0.9.1)
PatrickT

1
@PatrickT Bạn có thể làm điều này bằng cách sử dụng một thư viện địa phương. Ví dụ install_version('ggplot2', version = 0.9.1, lib = 'path_to_library_with_ggplot_0.9.1')library(ggplot2, lib.loc = 'path_to_library_with_ggplot_0.9.1')
bóng tối

1
bạn cũng có thể sử dụng .libPaths ("/ dir_for_custom_l Library_versions") trước khi chạy install_version
tjjjohnson

1
Ngày nay tôi nghĩ remotes::install_versionlà thích hợp hơn vì remoteslà một gói nhẹ hơn nhiều so với devtools( devtools::install_versionchỉ là tái xuất remotes::install_version)
MichaelChirico

5

Sử dụng install.packagesnhư được mô tả trong câu trả lời khác không làm việc cho tôi.

Cách thay thế tốt nhất tôi tìm thấy là sử dụng chức năng install_urltừ gói devtools.

Một khả năng khác mà tôi chưa khám phá thêm:

  1. Tải xuống tệp nguồn .tar.gz cũ hơn từ kho lưu trữ gói.
  2. Thực hiện theo các bước được ghi lại trên http://rtm.wustl.edu/writings/htrtargz.pdf để cài đặt cục bộ.

Điều này không hiệu quả với tôi, vui lòng theo dõi stackoverflow.com/q/22673474/684229 của tôi để biết chi tiết.
TMS

+1, R CMD INSTALLLệnh cũng hoạt động trên Ubuntu. Cảm ơn!!
Phani

5

Bạn có thể tải xuống phiên bản phù hợp của mình từ liên kết bên dưới dưới dạng tệp zip.

http://cran.r-project.org/src/contrib/Archive/ggplot2/

Trong R Studio: Công cụ >> Cài đặt gói >> Cài đặt từ: (chọn thả xuống)

Gói lưu trữ tệp (.zip, .tar.gz).

Chọn tệp mới được tải xuống của gói-zip-file và cài đặt gói


4

Tìm thấy một giải pháp tốt, làm việc cho tôi (các chi tiết có tại liên kết ).

Lệnh trong thư viện "repmis":

# Install old versions of the e1071 and gtools packages.

# Create vectors of the package names and versions to install
# Note the names and version numbers must be in the same order
Names <- c("e1071", "gtools")
Vers <- c("1.6", "2.6.1")

# Install old package versions into the default library
InstallOldPackages(pkgs = Names, versions = Vers)

1

install.packagesPhương pháp tinh khiết

Xem chủ đề này trên danh sách gửi thư r-devel . Trả lời Kurt Wheeler, Kurt Hornik tiết lộ một tính năng không có giấy tờ của trang web CRAN để chỉ định phiên bản cụ thể của gói.

Phương pháp này sẽ hoạt động miễn là bạn đã cài đặt tất cả các phụ thuộc cần thiết:

package = "https://cran.r-project.org/package=svglite&version=1.2.1"
utils::install.packages(pkgs = package, repos = NULL)

Lưu ý cấu trúc URL ở trên. Điều này giải quyết vấn đề CRAN có cấu trúc URL khác cho phiên bản mới nhất so với phiên bản lưu trữ:

# Latest version (not available at Archive/svglite)
https://cran.r-project.org/src/contrib/svglite_1.2.1.tar.gz
# Archived version
https://cran.r-project.org/src/contrib/Archive/svglite/svglite_1.2.0.tar.gz

remotes::install_version phương pháp

Một lựa chọn khác là sử dụng remotes::install_version chức năng . Tuy nhiên, bạn sẽ cần phải cài đặt remotes gói .


0

Có một versionsgói đơn giản hóa đáng kể nhiệm vụ này, cho các phiên bản gói được phát hành từ 2014-09-17. Nó sử dụng ảnh chụp nhanh của máy chủ MRAN tại Revolution Analytics để:

  • hiển thị ngày phát hành và tính khả dụng MRAN của bất kỳ gói CRAN nào ( available.versions),

  • cài đặt các phiên bản được chỉ định của một hoặc nhiều gói ( install.versions) hoặc

  • cài đặt các phiên bản gói có sẵn kể từ bất kỳ ngày nào được chỉ định ( install.dates). Nó thực hiện cài đặt từ máy chủ MRAN thông qua install.packageschức năng tiêu chuẩn , do đó, có thể cài đặt các phiên bản nhị phân thay vì phải biên dịch từ nguồn và có thể bao gồm các phụ thuộc gói kể từ ngày được chỉ định.

Tất nhiên có thể có vấn đề tương thích với sự kết hợp của phiên bản gói và phiên bản R. Để chạy các phiên bản R khác nhau, xem ví dụ trang này .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.