Andrew Gelman beklagte kürzlich das Fehlen eines einfachen Upgrade-Prozesses für R (wahrscheinlich relevanter unter Windows als unter Linux). Hat jemand einen guten Trick für das Upgrade, von der Installation der Software bis zum Kopieren aller Einstellungen / Pakete?
Dieser Vorschlag war in den Kommentaren enthalten und wurde kürzlich verwendet. Zuerst installieren Sie die neue Version und führen diese dann in der alten Version aus:
#--run in the old version of R
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")
Gefolgt von diesem in der neuen Version:
#--run in the new version
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)
Antworten:
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.
Sie können den Standard ändern
.Library
Wert der Funktion.libPaths
zuDadurch 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.
Ich erstelle die packagelist.RData durch Angabe
.Last()
in meiner Rprofile.site. Dadurch wird die Paketliste aktualisiert, wenn ich einige installiert habe: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.
quelle
.Library
. In meinem Fall verweist es unverändert auf den R-Installationsordner (was ich besonders nicht mag, aber gut)Dies ist natürlich eine alte Frage, aber es könnte eine neue einfache Antwort geben (funktioniert nur für Windows), die ich gerade gefunden habe.
Der beste Weg, dies zu tun, ist das RGui-System. Alle Ihre Pakete werden in den neuen Ordner übertragen und die alten werden gelöscht oder gespeichert (Sie können entweder auswählen). Sobald Sie RStudio erneut öffnen, wird sofort erkannt, dass Sie eine aktualisierte Version verwenden. Für mich hat das wie ein Zauber gewirkt,
Weitere Infos zu {installr} hier .
Simon
quelle
Zwei schnelle Vorschläge:
Verwenden Sie Gabors Batchdateien die Tools enthalten sollen, die beispielsweise bei der Verlagerung dieser helfen. Vorsichtsmaßnahme: Ich habe sie nicht benutzt.
Installieren Sie keine Bibliotheken innerhalb des 'Dateibaums' der installierten R-Version. Unter Windows kann ich R in die Version C: / opt / R / R- $ einfügen, aber alle Bibliotheken mit dem folgenden Snippet in C: / opt / R / library / einfügen, da dies das Problem zunächst lindert:
quelle
Die oben vorgeschlagene Methode funktioniert nicht vollständig, wenn Sie Pakete haben, die nicht von CRAN stammen. Zum Beispiel ein persönliches Paket oder ein Paket, das von einer Nicht-CRAN-Site heruntergeladen wurde.
Meine bevorzugte Methode unter Windows (Upgrade von 2.10.1 auf 2.11.0):
R-2.10.0/library/*
nachR-2.11.0/library/
update.packages()
quelle
In Bezug auf die in der Frage angegebene Lösung ist es möglicherweise nicht einfach, Ihre ältere Version von R auszuführen, wenn Sie die neue Version bereits installiert haben. In diesem Fall können Sie weiterhin alle fehlenden Pakete aus der vorherigen R-Version wie folgt neu installieren.
(Beachten Sie, dass das Argument
list.files()
in der ersten Codezeile der Pfad zum Bibliotheksverzeichnis für Ihre vorherige R-Version sein sollte, in dem sich alle Ordner von Paketen in der vorherigen Version befinden. In meinem aktuellen Fall ist dies der Fall"/Library/Frameworks/R.framework/Versions/3.2/Resources/library"
. Dies ist anders, wenn Ihre vorherige R-Version ist nicht 3.2 oder unter Windows.)Die
if
Anweisung stellt sicher, dass ein Paket nicht installiert wird, wennfor
Schleife installiert wurde .quelle
Nach Dirks Vorschlag finden Sie hier einen R-Code für Windows: So aktualisieren Sie R unter Windows XP auf einfache Weise
Update (15.04.11): Ich habe einen weiteren Beitrag zu diesem Thema verfasst, in dem erklärt wird, wie mit allgemeinen Problemen beim Aktualisieren von R unter Windows 7 umgegangen werden kann
quelle
installr
das diesen Prozess automatisiert (derzeit nur unter Windows). R-statistics.com/tag/installr oder github.com/talgalili/installrinstall.packages(installr); library(installr); updateR(TRUE)
. Am Ende[1] TRUE
erscheint. Durch Galilis exzellentes Paket bin ich sehr einfach von R 3.6.0 auf R 3.6.1 übergegangen. Danke Tal.Zwei Optionen:
.libPaths("C:/R/library")
quelle
Ich bin unter Windows 8 und aus irgendeinem seltsamen Grund kann ich niemals Pakete über meine Internetverbindungen installieren.
Ich installiere es im Allgemeinen mit der ZIP-Datei von CRAN.
Nachdem ich von R 3.2.5 auf R 3.3.1 gegangen bin.
Ich habe einfach die Pakete von kopiert
C:\Path\to\packa\R\win-library\3.2
zuC:\Path\to\packa\R\win-library\3.3
.Und dann habe ich die R-Sitzung neu gestartet. Hat perfekt funktioniert. Ich habe nicht überprüft, ob ALLE Pakete gut funktionieren. Aber die, die ich überprüft habe, funktionieren einwandfrei. Hoffe, dieser Hack funktioniert für alle.
Prost.
quelle
Die akzeptierte Antwort könnte funktionieren, wenn Sie vorausschauend sind, aber ich hatte die alte Version bereits entfernt und konnte diesen Anweisungen nicht folgen. Die unten beschriebenen Schritte funktionierten für das OSX-Upgrade von 2.1 und 3.1.
AKTUALISIERT: Um das Verzeichnis für Ihre neueste Version abzurufen (anstatt 3.1 oder 3.2 einzugeben), können Sie die folgenden Befehle verwenden. Die zweite konvertiert direkt in die R-Variable, überspringt
.
und..
und.DS_Store
verwendet:(Fügen Sie
|pbcopy
am Ende hinzu, um es direkt in Ihre Mac-Zwischenablage zu kopieren.)Dann können Sie in R die generierte Variable einfügen. Sobald dies in der neuen Version von R definiert ist, können Sie die installierten Pakete anhand der obigen Anweisungen durchlaufen ...
quelle
Für mich ist diese Seite gut https://www.r-statistics.com/2013/03/updating-r-from-r-on-windows-using-the-installr-package/ oder eine andere Option ist einfach die neue zu installieren Option und am Ende setzen Sie, zum Beispiel in Windows in meinem PC
.libPaths (c ("D: /Documents/R/win-library/3.2", "C: / Programme / R / R-3.2.3 / library", "C: / Programme / R / R-3.2" .0 / library "," D: /Documents/R/win-library/2.15 ")
Jeder Pfad der letzten Version in meinem Fall, in den ich immer den ersten Pfad eingefügt habe, ist "D: /Documents/R/win-library/3.2", der festgelegt ist, und dann habe ich den anderen eingefügt, weil Sie keine Pakete kopieren oder verschieben müssen Mein Sugest nennt es einfach
quelle
linux
+bash
+debian
+apt
Benutzer:Wenn Sie auf die neueste Version von installieren / aktualisieren,
R
gehen wir möglicherweise davon aus, dass Sie überroot
Berechtigungen verfügen . (Nicht unbedingt erforderlich, vereinfacht nur den Vorgang erheblich. Aus Gründen der Konsistenz wird das folgende Skriptsudo
für alle Installationen verwendet.) Da dieR
Pakete auch von installiert werdenroot
, ist es daher zulässig, diese zu platzieren/usr/local/
.Der Aufruf von
curl
unten setzt voraus, dass Sie bereits an dersid
Veröffentlichung derR
neuesten instabilen Version interessiert sind (wie beim Erstellen / Überprüfen einesR
Pakets erforderlich )cat /etc/apt/sources.list | grep 'sid' || exit 1
obwohl dies leicht durch eine neuere stabile Version ersetzt werden könnte, z
buster
.Beachten Sie, dass ich nicht einen mit Schlüssel wie normalerweise empfohlen . Dies ist nicht unbedingt erforderlich, insbesondere wenn wir (wie im folgenden Skript) Pakete in sich
R
selbst installieren (sieheRscript -e
unten). Außerdem neigen solche Schlüssel dazu, alle paar Jahre zu brechen / sich zu ändern. Daher können Sie der folgenden Datei natürlich das folgende Vorwort hinzufügenR.sh
:sudo apt-key adv --keyserver keyserver.ubuntu.com \ --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
Die
array
vonR
Paketen ist eindeutig nicht erschöpfend , sondern gibt einige Beispiele , die ich persönlich nützlich finden. Eine Neuinstallation / Aktualisierung mit demdebian
Paketr-recommended
(siehe unten) sollte die neueste Version aller empfohlenen Standardpakete (zsurvival
. B. ) enthalten. Ich glaube, es kann eine leichte Verzögerung zwischen einer CRAN-Version und einem Update des entsprechendendebian
Pakets geben. Daher möchten Sie möglicherweise einige davon zu denarray
folgenden hinzufügen, wenn die neueste Version eines empfohlenenR
Pakets erforderlich ist.Die im folgenden Prozess installierten
debian
Pakete sind weder wesentlich (für die Verwendungr-base
) noch vollständig, bieten jedoch eine Nr. von 'Add-Ons', die für eine vernünftige Nr. wichtig sind. vonR
Paketen.Wie auch immer ... platzieren Sie Folgendes in
R.sh
:Führen Sie es dann aus, z. B. unter der Annahme, dass bereits im Verzeichnis:
source R.sh
.Installieren von Paketen (ob
debian
oderR
) one-by-one in einer Schleife von dem Shell ist etwas ineffizient, aber ermöglicht eine einfachere Rückverfolgung von Fehlern, IMHO. Kann je nach Nr. Einige Zeit dauern. vonR
Paketen, also vielleicht am einfachsten über Nacht laufen zu lassen ...quelle
r-recommended
. 'r-base-devel' ist bekannt alsr-base-dev
(debian
Paket) - war bereits enthalten. Ich bin nicht abgeneigt, einen Schlüssel für die Sicherheit zu verwenden (Antwort aktualisiert). Die Antwort hält sich von der Verwendung einesPPA
= Personal Package Archives fern, da diese notwendigerweise von einer Person abhängig und daher möglicherweise fehlbar sind. Wie Michael Rutter selbst (2012) sagt: "Wenn Sie CRAN verwendet haben, gibt es keinen Grund, auf die PPA umzusteigen, da an beiden Standorten dieselben Pakete bereitgestellt werden."