Andrew Gelman baru-baru ini menyesalkan kurangnya proses upgrade yang mudah untuk R (mungkin lebih relevan pada Windows daripada Linux). Adakah yang punya trik bagus untuk melakukan peningkatan, mulai dari menginstal perangkat lunak hingga menyalin semua pengaturan / paket?
Saran ini terkandung dalam komentar dan adalah apa yang saya gunakan baru-baru ini. Pertama Anda memasang versi baru, lalu jalankan ini di versi lama:
#--run in the old version of R
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")
Diikuti oleh ini di versi baru:
#--run in the new version
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)
Jawaban:
Hanya untuk kelengkapan, ada beberapa cara untuk mencegah Anda mengalami masalah ini. Seperti yang dikatakan Dirk, simpan paket Anda di direktori lain di komputer Anda.
Anda dapat mengubah nilai default
.Library
menggunakan fungsi.libPaths
jugaIni akan menempatkan jalur ini sebagai nilai pertama dalam
.Library
variabel, dan akan menjadikannya default.Jika Anda ingin mengotomatiskan ini lebih lanjut, Anda dapat menentukan ini di file Rprofile.site, yang Anda temukan di direktori / etc / dari build R Anda. Maka itu akan memuat secara otomatis setiap kali R dimuat, dan Anda tidak perlu khawatir tentang itu lagi. Anda bisa menginstal dan memuat paket dari direktori yang ditentukan.
Akhirnya, saya memiliki beberapa kode kecil yang disertakan dalam Rprofile.site saya yang memungkinkan saya untuk menginstal ulang semua paket ketika saya menginstal versi R baru. Anda hanya perlu mendaftarkannya sebelum Anda memperbarui ke versi R. yang baru. Saya melakukannya menggunakan file .RData yang berisi daftar yang diperbarui dengan semua paket.
Saya membuat daftar kemasan.RData dengan menentukan
.Last()
di Rprofile.site saya. Ini memperbarui daftar paket jika saya menginstal beberapa:Ketika saya menginstal versi R baru, saya hanya menambahkan elemen yang diperlukan ke file Rprofile.site dan semua paket diinstal ulang. Saya tetap harus menyesuaikan Rprofile.site (menggunakan kontras jumlah, menambahkan kode tambahan untuk Tinn-R, hal-hal ini), jadi ini bukan pekerjaan ekstra. Hanya perlu waktu ekstra untuk menginstal semua paket lagi.
Bit terakhir ini setara dengan apa yang diberikan dalam pertanyaan asli sebagai solusi. Saya hanya tidak perlu khawatir tentang mendapatkan daftar "terinstal" terlebih dahulu.
Sekali lagi, ini tidak berfungsi dengan sempurna jika Anda memiliki paket yang tidak diinstal dari CRAN. Tetapi kode ini mudah diperluas untuk memasukkan yang juga.
sumber
.Library
. Dalam kasus saya, itu menunjuk kembali ke folder instalasi R jika tidak berubah (yang saya terutama tidak suka, tapi yah)Ini adalah pertanyaan lama tentu saja tetapi mungkin ada jawaban mudah yang baru (hanya bekerja untuk Windows), yang baru saja saya temukan.
Cara terbaik untuk melakukan ini adalah dari sistem RGui. Semua paket Anda akan ditransfer ke folder baru dan yang lama akan dihapus atau disimpan (Anda dapat memilih salah satu). Kemudian setelah Anda membuka RStudio lagi, ia segera mengenali bahwa Anda menggunakan versi yang diperbarui. Bagi saya ini bekerja seperti pesona,
Info lebih lanjut tentang {installr} di sini .
Simon
sumber
Dua saran cepat:
Gunakan kumpulan file Gabor yang dikatakan terdiri dari alat bantu misalnya relokasi perpustakaan massal ini. Peringatan: Saya belum menggunakannya.
Jangan pasang pustaka di dalam 'filetree' dari versi R yang diinstal. Pada Windows, saya dapat memasukkan R ke versi C: / opt / R / R- $ tetapi tempatkan semua pustaka ke dalam C: / opt / R / library / menggunakan cuplikan berikut ini karena meringankan masalah di tempat pertama:
sumber
Metode yang disarankan di atas tidak akan berfungsi sepenuhnya jika Anda memiliki paket yang bukan dari CRAN. Misalnya, paket pribadi atau paket yang diunduh dari situs non-CRAN.
Metode pilihan saya di Windows (meningkatkan 2.10.1 ke 2.11.0):
R-2.10.0/library/*
keR-2.11.0/library/
update.packages()
sumber
Sehubungan dengan solusi yang diberikan dalam pertanyaan, mungkin tidak mudah untuk menjalankan versi R lama Anda jika Anda telah menginstal versi baru. Dalam hal ini, Anda masih dapat menginstal ulang semua paket yang hilang dari versi R sebelumnya sebagai berikut.
(Perhatikan bahwa argumen
list.files()
di baris kode pertama harus menjadi jalur ke direktori pustaka untuk versi R Anda sebelumnya, di mana semua folder paket dalam versi sebelumnya berada. Dalam kasus saya saat ini, ini adalah"/Library/Frameworks/R.framework/Versions/3.2/Resources/library"
. Ini akan berbeda jika versi R sebelumnya bukan 3.2, atau jika Anda menggunakan Windows.)The
if
Pernyataan memastikan bahwa sebuah paket tidak diinstal jikafor
loop sebelumnya.sumber
Mengikuti saran Dirk, berikut adalah beberapa kode R untuk melakukannya di windows: Cara mudah memutakhirkan R di windows XP
Pembaruan (15.04.11): Saya menulis posting lain tentang masalah ini, menjelaskan bagaimana menangani masalah umum peningkatan R di windows 7
sumber
installr
yang mengotomatiskan proses ini (saat ini hanya di Windows) r-statistics.com/tag/installr atau github.com/talgalili/installrinstall.packages(installr); library(installr); updateR(TRUE)
. Di akhir,[1] TRUE
muncul. Dengan paket luar biasa dari Galili, saya beralih dari R 3.6.0 ke R 3.6.1 dengan sangat mudah. Terima kasih, Tal.Dua pilihan:
.libPaths("C:/R/library")
sumber
Saya menggunakan Windows 8 dan untuk beberapa alasan aneh, saya tidak pernah dapat menginstal paket menggunakan koneksi internet saya.
Saya biasanya menginstalnya menggunakan file .zip dari CRAN.
Setelah saya beralih dari R 3.2.5 ke R 3.3.1.
Saya hanya menyalin paket dari
C:\Path\to\packa\R\win-library\3.2
untukC:\Path\to\packa\R\win-library\3.3
.Dan kemudian saya memulai kembali sesi R. Bekerja dengan sempurna. Saya belum memeriksa apakah SEMUA paket berfungsi dengan baik. Tapi, yang saya periksa berfungsi dengan baik. Semoga peretasan ini bekerja untuk semua orang.
Bersulang.
sumber
Jawaban yang diterima mungkin bekerja jika Anda memiliki pandangan ke depan, tetapi saya sudah menyingkirkan versi lama sehingga tidak dapat mengikuti petunjuk ini. Langkah-langkah yang dijelaskan di bawah ini berfungsi untuk memutakhirkan OSX dari 2.1 dan 3.1.
DIPERBARUI: Untuk mendapatkan direktori untuk versi terbaru Anda (alih-alih mengetikkan 3.1 atau 3.2) Anda dapat menggunakan perintah di bawah ini. Yang kedua mengkonversi langsung ke variabel-R, melompati
.
dan..
dan.DS_Store
, menggunakan:(Menambahkan
|pbcopy
ke akhir untuk menyalinnya langsung ke clipboard Mac Anda)Kemudian dalam R Anda dapat menempelkan variabel yang dihasilkan. Setelah itu didefinisikan dalam versi baru R, Anda dapat mengulangi paket yang diinstal dari instruksi di atas ...
sumber
bagi saya halaman ini baik https://www.r-statistics.com/2013/03/updating-r-from-r-on-windows-using-the-installr-package/ atau opsi lain hanya menginstal yang baru pilihan dan pada akhirnya Anda masukkan, misalnya di windows di pc saya
.libPaths (c ("D: /Documents/R/win-library/3.2", "C: / Program Files / R / R-3.2.3 / library", "C: / Program Files / R / R-3.2 .0 / library "," D: /Documents/R/win-library/2.15 ")
setiap path versi terakhir dalam kasus saya saya selalu meletakkan path pertama adalah "D: /Documents/R/win-library/3.2" yang diperbaiki dan kemudian saya meletakkan yang lain karena Anda tidak perlu menyalin atau memindahkan paket apa pun, di sugest saya sebut saja
sumber
linux
+bash
+debian
+apt
pengguna:Jika Anda menginstal / meningkatkan ke versi terbaru
R
, maka kami dapat menganggap Anda memilikiroot
izin. (Tidak penting, hanya membuat prosesnya jauh lebih sederhana; untuk konsistensi, skrip di bawah ini digunakansudo
untuk semua pemasangan.) KarenaR
paket-paket ini juga diinstal olehroot
, maka diizinkan untuk menempatkannya di sini/usr/local/
.Panggilan ke
curl
bawah mengasumsikan Anda sudah tertarik padasid
rilisR
, versi terbaru yang sangat tidak stabil (seperti yang diperlukan saat membangun / memeriksaR
paket) yaitucat /etc/apt/sources.list | grep 'sid' || exit 1
meskipun ini dapat dengan mudah diganti dengan rilis stabil terbaru mis
buster
.Perhatikan bahwa saya tidak menggunakan kunci seperti yang biasanya disarankan . Ini tidak penting, terutama jika (seperti dalam skrip berikut) kami menginstal paket di dalamnya
R
(diRscript -e
bawah). Juga, kunci tersebut memiliki kecenderungan untuk pecah / berubah setiap beberapa tahun. Dengan demikian, Anda tentu saja dapat menambahkan kata pengantar berikut ke fileR.sh
yang berikut:sudo apt-key adv --keyserver keyserver.ubuntu.com \ --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
Paket
array
-R
paket ini jelas tidak lengkap tetapi memberikan beberapa contoh yang menurut saya bermanfaat. Instalasi / peningkatan baru dengandebian
paket inir-recommended
, seperti di bawah ini, harus memberikan versi terbaru dari semua paket standar yang 'direkomendasikan' (missurvival
.). Saya percaya mungkin ada sedikit jeda antara rilis CRAN dan pembaruan untukdebian
paket yang relevan . Dengan demikian, Anda mungkin ingin menambahkan beberapa diarray
bawah ini jika memiliki versi terbaru dariR
paket 'disarankan' sangat penting.debian
Paket - paket yang diinstal pada proses di bawah ini juga tidak penting (untuk digunakanr-base
) maupun lengkap tetapi tidak. dari 'add-on' yang penting untuk tidak masuk akal. dariR
paket.Pokoknya ... tempatkan yang berikut ini
R.sh
:Kemudian jalankan, misalnya dengan asumsi dalam direktori sudah:
source R.sh
.Menginstal paket (apakah
debian
atauR
) satu per satu dalam satu lingkaran dari shell agak tidak efisien, tetapi memungkinkan untuk penelusuran kesalahan yang lebih sederhana, IMHO. Dapat memakan waktu tergantung pada no. dariR
paket, jadi mungkin paling sederhana untuk membiarkan menjalankan semalam ...sumber
r-recommended
. 'r-base-devel' dikenal sebagair-base-dev
(debian
paket) - sudah disertakan. Saya tidak benci menggunakan kunci untuk keamanan (jawaban diperbarui). Jawabannya tinggal jauh dari menggunakanPPA
= Paket Arsip Pribadi karena ini tergantung pada satu orang dan dengan demikian berpotensi salah. Seperti yang dikatakan Michael Rutter sendiri (2012): "Jika Anda telah menggunakan CRAN, maka tidak ada alasan untuk berubah ke PPA, karena paket yang sama disediakan di kedua lokasi."