Menginstal versi R paket yang lebih lama


134

Saya mencoba menggunakan Rpy2 dan ggplot2 tapi saya mendapatkan kesalahan. Setelah beberapa pencarian kesalahan online, saya menemukan bahwa kesalahan terjadi karena ada perubahan dalam paket ggplot2 yang belum tercermin dalam Rpy2 (misalnya, lihat posting ini (Edit: Tautan sekarang mati)).

Jadi saya sekarang perlu menginstal versi ggplot2 yang lebih lama. Berikut adalah pseudo-code untuk apa yang saya inginkan:

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

Tetapi install.packagestidak memiliki versionargumen . Bagaimana saya melakukannya?


Jawaban:


150

Untuk menginstal versi paket dari sumber yang lebih lama (dalam R):

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

Jika ini tidak berhasil untuk Anda dan Anda menggunakan Windows, alasannya mungkin karena kurangnya rantai alat yang sesuai untuk membangun / mengkompilasi paket . Biasanya Anda akan menginstal biner yang telah dikompilasi dari CRAN tetapi mereka hanya mengarsipkan sumber paket , bukan binari. [1] Ini berarti Anda harus menginstal Rtools sehingga Anda dapat mengkompilasi semuanya secara lokal. (Catatan: Rtools bukan paket R. )

@ bayangan jawaban di bawah ini juga membuat case yang dapat Anda gunakan devtools::install_version(). Itu juga ide yang bagus, tetapi juga membutuhkan Rtools di Windows.

Pada 18 September 2015, versi paket baru telah muncul di CRAN . Ini bergantung pada server MRAN Revolution Analytics untuk menginstal paket untuk versi atau tanggal tertentu:

# 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'))

Itu memiliki keuntungan karena tidak memerlukan Rtools untuk menginstal paket biner pada Windows, tetapi hanya berfungsi kembali ke 2014-09-17 (ketika MRAN diluncurkan).

Untuk menginstal versi yang lebih lama dari baris perintah (di luar R):

Anda juga dapat menginstal paket dengan menggunakan R CMD INSTALLpada baris perintah (Terminal, Command Prompt, dll.) Setelah Anda memiliki sumber paket ("tarball") secara lokal di mesin Anda, misalnya menggunakan wget(jika Anda memilikinya):

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

atau, jika Anda menggunakan Windows, yang setara dengan menggunakan PowerShell adalah:

(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")

atau Anda dapat mengunduh sumber dari arsip CRAN melalui browser web Anda.

Untuk menginstal dari file lokal, Anda cukup melakukan:

R CMD INSTALL ggplot2_0.9.1.tar.gz

Itu harus bekerja pada platform apa pun (dengan peringatan yang sama - seperti di atas - tentang membutuhkan rantai alat untuk membangun paket).


[1] Ini tidak lagi sepenuhnya benar. Sejak Maret 2016, CRAN telah mulai meng - hosting server "CRAN Archive" yang berisi binari Windows dan Mac untuk versi R yang sangat lama (> 5 tahun). Anda sekarang dapat menginstal langsung dari server ini menggunakan install.packages(). Lihat R FAQ 7.44 baru untuk beberapa detail.


4
Terima kasih, saya kira itu cara yang benar. Sayang sekali sekarang saya mendapatkan: 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
Punya masalah serupa dengan Rcpp. Ini bisa jadi karena ketergantungan versi R dari paket (TERGANTUNG: <versi>), atau mungkin sesi R yang sedang berjalan tidak akan membiarkan Anda melakukan pembaruan. Apa yang saya temukan berhasil bagi saya adalah untuk melakukan pembaruan dengan cara yang disarankan Mark Butler (di bawah) (R CMD INSTALL your_version.tar.gz). Ini untuk R 2.15.3 dalam kasus saya.
Robert Casey

@Antoine Apakah Anda menggunakan Windows? Dan, jika demikian, apakah Anda memiliki Rtools yang diinstal?
Thomas

@ Thomas Terima kasih telah merespons. Ya, saya di Windows dengan Rtools "pseudo -install" lihat utas ini .
Antoine

@ Thomas Saya akan mencoba menjalankan skrip saya di Amazon EC2 untuk menghindari masalah lokal yang jelas pada mesin saya (jalur perpustakaan, versi R vs versi paket, kompilasi masalah dll.)
Antoine

87

The remotespaket menawarkan install_versionfungsi yang dapat melakukan hal ini secara langsung.

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

Sebelumnya, jawaban ini menunjuk ke devtoolspaket, yang juga mengekspor kembali install_versionfungsinya. Terima kasih @MichaelChirico karena menunjukkan bahwa remotespaket lebih disukai.


dapatkah Anda menyimpan beberapa versi dari paket yang sama tanpa harus install_versionsetiap kali Anda ingin memuat versi tertentu? katakan,library(ggplot2-0.9.1)
PatrickT

1
@ Patrick Anda dapat melakukan ini dengan menggunakan perpustakaan lokal. Misalnya install_version('ggplot2', version = 0.9.1, lib = 'path_to_library_with_ggplot_0.9.1')danlibrary(ggplot2, lib.loc = 'path_to_library_with_ggplot_0.9.1')
bayangan

1
Anda juga dapat menggunakan .libPaths ("/ dir_for_custom_library_versions") sebelum menjalankan install_version
tjjjohnson

1
Saat ini saya pikir remotes::install_versionlebih disukai karena remotesini adalah paket yang jauh lebih ringan daripada devtools( devtools::install_versionhanya ekspor ulang remotes::install_version)
MichaelChirico

5

Menggunakan install.packagesseperti yang dijelaskan dalam jawaban lain tidak berhasil untuk saya.

Alternatif terbaik yang saya temukan adalah menggunakan fungsi install_urldari paket devtools.

Kemungkinan lain yang belum saya jelajahi lebih lanjut:

  1. Unduh file sumber .tar.gz yang lebih lama dari arsip paket.
  2. Ikuti langkah-langkah yang didokumentasikan di http://rtm.wustl.edu/writings/htrtargz.pdf untuk menginstalnya secara lokal.

Ini tidak berfungsi untuk saya, ikuti pertanyaan saya stackoverflow.com/q/22673474/684229 untuk detailnya.
TMS

+1, R CMD INSTALLPerintah juga berfungsi di Ubuntu. Terima kasih!!
Phani


4

Menemukan solusi yang bagus, yang bekerja untuk saya (detailnya ada di tautan ).

Perintah di perpustakaan "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.packagesMetode murni

Lihat utas ini di milis r-devel . Sebagai balasan untuk Kurt Wheeler, Kurt Hornik mengungkapkan fitur tidak berdokumen dari situs web CRAN untuk menentukan versi spesifik dari suatu paket.

Metode ini akan berfungsi selama Anda telah menginstal semua dependensi yang diperlukan:

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

Perhatikan struktur URL di atas. Ini mengatasi masalah bahwa CRAN memiliki struktur URL yang berbeda untuk versi terbaru daripada untuk versi yang diarsipkan:

# 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 metode

Pilihan lain adalah menggunakan remotes::install_version fungsi . Namun, Anda harus menginstal remotes paket .


0

Ada versionspaket yang sangat menyederhanakan tugas ini, untuk versi paket yang dirilis sejak 2014-09-17. Ia menggunakan snapshot dari server MRAN di Revolution Analytics untuk:

  • tampilkan tanggal rilis dan ketersediaan MRAN untuk paket CRAN apa pun ( available.versions),

  • instal versi tertentu dari satu atau beberapa paket ( install.versions), atau

  • instal versi paket yang tersedia pada tanggal yang ditentukan ( install.dates). Itu melakukan instalasi dari server MRAN melalui install.packagesfungsi standar , sehingga versi biner yang tersedia dapat diinstal daripada harus mengkompilasi dari sumber, dan dependensi paket pada tanggal yang ditentukan dapat dimasukkan.

Tentu saja mungkin ada masalah kompatibilitas dengan kombinasi versi paket dan versi R. Untuk menjalankan versi R yang berbeda, lihat misalnya halaman ini .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.