Installation einer älteren Version des R-Pakets

133

Ich versuche Rpy2 und ggplot2 zu verwenden, erhalte jedoch eine Fehlermeldung. Nachdem ich online nach dem Fehler gesucht hatte, stellte ich fest, dass der Fehler auftritt, weil das ggplot2-Paket Änderungen enthält, die noch nicht in Rpy2 berücksichtigt wurden (siehe z diesen Beitrag (Bearbeiten: Link ist jetzt tot)).

Daher muss ich jetzt eine ältere Version von ggplot2 installieren. Hier ist Pseudocode für das, was ich will:

install.packages("ggplot2", version='0.9.1')

Hat install.packagesaber kein versionArgument . Wie mache ich es?

Hirolau
quelle
versuchen checkBuilt? stackoverflow.com/questions/16503554/…
Isomorphismen

Antworten:

149

So installieren Sie eine ältere Version eines Pakets von der Quelle (innerhalb von R):

packageurl <- "http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz"
install.packages(packageurl, repos=NULL, type="source")

Wenn dies für Sie nicht funktioniert und Sie unter Windows arbeiten, liegt der Grund wahrscheinlich darin, dass keine geeignete Toolkette zum Erstellen / Kompilieren von Paketen vorhanden ist . Normalerweise würden Sie eine vorkompilierte Binär von CRAN installieren , aber sie nur Archivpaket Quellen , nicht Binärdateien. [1] Dies bedeutet , dass Sie Rtools installieren müssen, damit Sie alles lokal kompilieren können. (Hinweis: Rtools ist kein R-Paket .)

Die Antwort von @ shadow unten macht auch den Fall, den Sie verwenden können devtools::install_version(). Das ist auch eine gute Idee, erfordert aber auch Rtools unter Windows.

Ab 18. September 2015, ein neues Paket - Versionen hat CRAN erschienen . Dies hängt vom Revolution Analytics MRAN- Server ab, um Pakete für bestimmte Versionen oder Daten zu installieren:

# install yesterday's version of checkpoint, by date
install.dates('checkpoint', Sys.Date() - 1)

# install earlier versions of checkpoint and devtools
install.versions(c('checkpoint', 'devtools'), c('0.3.3', '1.6.1'))

Dies hat den Vorteil, dass Rtools keine Binärpakete unter Windows installieren muss, sondern nur bis zum 17.09.2014 (als MRAN gestartet wurde) funktioniert.

So installieren Sie eine ältere Version über die Befehlszeile (außerhalb von R):

Sie können ein Paket auch R CMD INSTALLüber die Befehlszeile (Terminal, Eingabeaufforderung usw.) installieren , sobald Sie die Paketquelle ("tarball") lokal auf Ihrem Computer haben, z. B. mit wget(falls vorhanden):

wget http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz

Wenn Sie unter Windows arbeiten, entspricht PowerShell:

(new-object System.Net.WebClient).DownloadFile("http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz", "./ggplot2_0.9.1.tar.gz")

Oder Sie können die Quelle einfach über Ihren Webbrowser aus dem CRAN-Archiv herunterladen.

Um von der lokalen Datei zu installieren, können Sie einfach Folgendes tun:

R CMD INSTALL ggplot2_0.9.1.tar.gz

Das sollte auf jeder Plattform funktionieren (mit der gleichen Einschränkung - wie oben - bezüglich der Notwendigkeit einer Werkzeugkette zum Erstellen von Paketen).


[1] Dies ist nicht mehr ganz richtig. Seit März 2016 hostet CRAN einen "CRAN Archive" -Server , der Windows- und Mac-Binärdateien für sehr alte Versionen von R (> 5 Jahre alt) enthält. Sie können jetzt direkt von diesem Server mit installieren install.packages(). Siehe neue R FAQ 7.44 für einige Details.

Thomas
quelle
4
Danke, ich denke es ist der richtige Weg. Schade, dass ich jetzt bekomme: Warning message: package ‘http://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_0.9.1.tar.gz’ is not available (for R version 2.15.2)
Hirolau
3
Hatte ein ähnliches Problem mit Rcpp. Dies kann an der Abhängigkeit der R-Version des Pakets liegen (ABHÄNGIG: <Version>), oder es kann sein, dass Sie in der laufenden R-Sitzung das Update nicht durchführen können. Ich fand, dass es für mich funktioniert hat, das Update auf die von Mark Butler (unten) vorgeschlagene Weise durchzuführen (R CMD INSTALL your_version.tar.gz). Dies war in meinem Fall für R 2.15.3.
Robert Casey
@Antoine Sind Sie unter Windows? Und wenn ja, haben Sie Rtools installiert?
Thomas
@ Thomas Danke für die Antwort. Ja, ich bin unter Windows mit Rtools "pseudo-installiert", siehe diesen Thread .
Antoine
@ Thomas Ich werde versuchen, mein Skript auf Amazon EC2 auszuführen, um die offensichtlichen lokalen Probleme auf meinem Computer zu vermeiden (Bibliothekspfade, Versionen von R gegen Versionen von Paketen, Kompilierungsprobleme usw.)
Antoine
87

Das remotesPaket bietet eine install_versionFunktion, die dies direkt tun kann.

require(remotes)
install_version("ggplot2", version = "0.9.1", repos = "http://cran.us.r-project.org")

Zuvor wies diese Antwort auf das devtoolsPaket hin, das die install_versionFunktion ebenfalls erneut exportiert . Vielen Dank an @MichaelChirico für den Hinweis, dass das remotesPaket vorzuziehen ist.

Schatten
quelle
Können Sie mehrere Versionen desselben Pakets behalten, ohne install_versionjedes Mal eine bestimmte Version laden zu müssen? sagen Sie,library(ggplot2-0.9.1)
PatrickT
1
@PatrickT Sie können dies mithilfe einer lokalen Bibliothek tun. Zum Beispiel install_version('ggplot2', version = 0.9.1, lib = 'path_to_library_with_ggplot_0.9.1')undlibrary(ggplot2, lib.loc = 'path_to_library_with_ggplot_0.9.1')
Schatten
1
Sie können auch .libPaths ("/ dir_for_custom_library_versions") verwenden, bevor Sie install_version
tjjjohnson
1
Heutzutage halte ich es für remotes::install_versionvorzuziehen, da remoteses ein viel leichteres Paket ist als devtools( devtools::install_versionnur ein Reexport von remotes::install_version)
MichaelChirico
5

Die Verwendung install.packageswie in einer anderen Antwort beschrieben funktioniert bei mir nicht.

Die beste Alternative, die ich gefunden habe, ist die Verwendung der Funktion install_urlaus dem Paket devtools.

Eine andere Möglichkeit, die ich nicht weiter untersucht habe:

  1. Laden Sie die ältere .tar.gz-Quelldatei aus den Paketarchiven herunter.
  2. Befolgen Sie die unter http://rtm.wustl.edu/writings/htrtargz.pdf dokumentierten Schritte , um es lokal zu installieren.
Asieira
quelle
Dies funktioniert bei mir nicht. Bitte folgen Sie meiner Frage stackoverflow.com/q/22673474/684229 für Details.
TMS
+1, Der R CMD INSTALLBefehl funktioniert auch unter Ubuntu. Vielen Dank!!
Phani
5

Sie können Ihre entsprechende Version über den folgenden Link als Zip-Datei herunterladen.

http://cran.r-project.org/src/contrib/Archive/ggplot2/

In R Studio: Tools >> Pakete installieren >> Installieren von: (Dropdown-Liste auswählen)

Paketarchivdatei (.zip, .tar.gz).

Wählen Sie Ihre neu heruntergeladene Paket-Zip-Datei und installieren Sie das Paket

user23899
quelle
4

Ich habe eine gute Lösung gefunden, die für mich funktioniert hat (die Details finden Sie unter dem Link ).

Befehl in der Bibliothek "repmis":

# Install old versions of the e1071 and gtools packages.

# Create vectors of the package names and versions to install
# Note the names and version numbers must be in the same order
Names <- c("e1071", "gtools")
Vers <- c("1.6", "2.6.1")

# Install old package versions into the default library
InstallOldPackages(pkgs = Names, versions = Vers)
Aybek Khodiev
quelle
1

Reine install.packagesMethode

Siehe diesen Thread in der R-Devel-Mailingliste . Als Antwort auf Kurt Wheeler enthüllt Kurt Hornik eine undokumentierte Funktion der CRAN-Website, um die spezifische Version eines Pakets anzugeben.

Diese Methode funktioniert, solange Sie alle erforderlichen Abhängigkeiten bereits installiert haben:

package = "https://cran.r-project.org/package=svglite&version=1.2.1"
utils::install.packages(pkgs = package, repos = NULL)

Beachten Sie die URL-Struktur oben. Dies behebt das Problem, dass CRAN für die neueste Version eine andere URL-Struktur hat als für archivierte Versionen:

# Latest version (not available at Archive/svglite)
https://cran.r-project.org/src/contrib/svglite_1.2.1.tar.gz
# Archived version
https://cran.r-project.org/src/contrib/Archive/svglite/svglite_1.2.0.tar.gz

remotes::install_version Methode

Eine andere Möglichkeit ist die Verwendung der remotes::install_version Funktion . Sie müssen das remotes Paket jedoch installieren .

Daniel Himmelstein
quelle
0

Es gibt ein versionsPaket , das diese Aufgabe für Paketversionen, die seit dem 17.09.2014 veröffentlicht wurden, erheblich vereinfacht. Es verwendet Snapshots des MRAN-Servers bei Revolution Analytics, um:

  • Veröffentlichungsdaten und MRAN-Verfügbarkeit aller CRAN-Pakete anzeigen ( available.versions),

  • Installieren Sie bestimmte Versionen eines oder mehrerer Pakete ( install.versions) oder

  • Installieren Sie die Paketversionen, die ab einem bestimmten Datum verfügbar sind ( install.dates). Die Installation vom MRAN-Server erfolgt über die Standardfunktion install.packages, sodass verfügbare Binärversionen installiert werden können, anstatt aus dem Quellcode kompiliert werden zu müssen, und Paketabhängigkeiten zum angegebenen Datum enthalten sein können.

Es kann natürlich Kompatibilitätsprobleme mit Kombinationen von Paketversionen und R-Versionen geben. Informationen zum Ausführen verschiedener R-Versionen finden Sie beispielsweise auf dieser Seite .

EdM
quelle