Sadece bütünlük için, bu sorunu yaşamanızı önlemenin bazı yolları vardır. Dirk'in dediği gibi, paketlerinizi bilgisayarınızdaki başka bir dizine kaydedin.
install.packages("thepackage",lib="/path/to/directory/with/libraries")
Varsayılan değiştirebilir .Library
işlevini kullanarak değeri .libPaths
çok
.libPaths("/path/to/directory/with/libraries")
Bu, bu yolu .Library
değişkente ilk değer olarak koyar ve varsayılan olarak yapar.
Bunu daha da otomatikleştirmek istiyorsanız, bunu R derlemenizin / etc / dizininde bulduğunuz Rprofile.site dosyasında belirtebilirsiniz. Daha sonra R her yüklendiğinde otomatik olarak yüklenir ve artık bunun için endişelenmenize gerek yoktur. Sadece belirtilen dizinden paketleri kurabilir ve yükleyebilirsiniz.
Son olarak, yeni bir R sürümü yüklediğimde tüm paketleri yeniden yüklememe izin veren Rprofile.site'de bazı küçük kodlar var. Yeni R sürümüne güncelleme yapmadan önce bunları listelemeniz yeterlidir. Tüm paketleri ile güncelleştirilmiş bir liste içeren bir .RData dosyası kullanarak bunu.
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])
}
.Last()
Benim Rprofile.site belirterek Packagelist.RData olun. Bazı yüklediysem bu paket listesini günceller:
.Last <- function(){
pkgs <- installed.packages()[,1]
if (length(pkgs) > length(installed)){
save(pkgs,file="G:\Setinfo\R\packagelist.RData")
}
}
Yeni bir R sürümü yüklediğimde, gerekli öğeleri yalnızca Rprofile.site dosyasına eklerim ve tüm paketler yeniden yüklenir. Zaten Rprofile.site ayarlamak zorunda (toplam zıtlıklar kullanarak, Tinn-R için ekstra kod ekleyerek, bu şeyler), bu yüzden gerçekten ekstra bir iş değil. Tüm paketlerin yeniden yüklenmesi ekstra zaman alır.
Bu son bit, orijinal soruda bir çözüm olarak verilene eşdeğerdir. Sadece "kurulu" listeyi almak konusunda endişelenmem gerekmiyor.
Yine, CRAN'dan kurulu olmayan paketleriniz varsa bu kusursuz çalışmaz. Ancak bu kod, bu kodları da içerecek şekilde kolayca genişletilebilir.