Der Vollständigkeit halber gibt es einige Möglichkeiten, um zu verhindern, dass Sie dieses Problem haben. Speichern Sie Ihre Pakete, wie Dirk sagte, in einem anderen Verzeichnis auf Ihrem Computer.
install.packages("thepackage",lib="/path/to/directory/with/libraries")
Sie können den Standard ändern .Library
Wert der Funktion .libPaths
zu
.libPaths("/path/to/directory/with/libraries")
Dadurch wird dieser Pfad als erster Wert in die .Library
Variable eingefügt und als Standardwert festgelegt.
Wenn Sie dies weiter automatisieren möchten, können Sie dies in der Datei Rprofile.site angeben, die Sie im Verzeichnis / etc / Ihres R-Builds finden. Dann wird es jedes Mal automatisch geladen, wenn R geladen wird, und Sie müssen sich darüber keine Sorgen mehr machen. Sie können Pakete einfach aus dem angegebenen Verzeichnis installieren und laden.
Schließlich ist in meiner Rprofile.site ein kleiner Code enthalten, mit dem ich alle Pakete neu installieren kann, wenn ich eine neue R-Version installiere. Sie müssen sie nur auflisten, bevor Sie auf die neue R-Version aktualisieren. Ich mache das mit einer .RData-Datei, die eine aktualisierte Liste mit allen Paketen enthält.
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])
}
Ich erstelle die packagelist.RData durch Angabe .Last()
in meiner Rprofile.site. Dadurch wird die Paketliste aktualisiert, wenn ich einige installiert habe:
.Last <- function(){
pkgs <- installed.packages()[,1]
if (length(pkgs) > length(installed)){
save(pkgs,file="G:\Setinfo\R\packagelist.RData")
}
}
Wenn ich eine neue R-Version installiere, füge ich einfach die erforderlichen Elemente zur Datei Rprofile.site hinzu und alle Pakete werden neu installiert. Ich muss die Rprofile.site sowieso anpassen (unter Verwendung von Summenkontrasten, Hinzufügen des zusätzlichen Codes für Tinn-R, diese Dinge), damit es nicht wirklich zusätzliche Arbeit ist. Es dauert nur etwas länger, alle Pakete neu zu installieren.
Dieses letzte Bit entspricht dem, was in der ursprünglichen Frage als Lösung angegeben ist. Ich muss mir nur keine Sorgen machen, dass ich zuerst die "installierte" Liste bekomme.
Auch dies funktioniert nicht einwandfrei, wenn Sie Pakete haben, die nicht von CRAN installiert wurden. Dieser Code ist jedoch leicht erweiterbar, um auch diese einzuschließen.