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.
install.packages("thepackage",lib="/path/to/directory/with/libraries")
Anda dapat mengubah nilai default .Library
menggunakan fungsi .libPaths
juga
.libPaths("/path/to/directory/with/libraries")
Ini 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.
library(utils)
## Check necessary packages
load("G:\Setinfo\R\packagelist.RData") # includes a vector "pkgs"
installed <- pkgs %in% installed.packages()[, 'Package']
if (length(pkgs[!installed]) >=1){
install.packages(pkgs[!installed])
}
Saya membuat daftar kemasan.RData dengan menentukan .Last()
di Rprofile.site saya. Ini memperbarui daftar paket jika saya menginstal beberapa:
.Last <- function(){
pkgs <- installed.packages()[,1]
if (length(pkgs) > length(installed)){
save(pkgs,file="G:\Setinfo\R\packagelist.RData")
}
}
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.