Installation de l'ancienne version du package R

134

J'essaye d'utiliser Rpy2 et ggplot2 mais j'obtiens une erreur. Après quelques recherches sur l'erreur en ligne, j'ai constaté que l'erreur se produisait car il y avait des modifications dans le package ggplot2 qui ne sont pas encore reflétées dans Rpy2 (par exemple, voir cet article (Edit: Link is now dead)).

Je dois donc maintenant installer une ancienne version de ggplot2. Voici le pseudo-code pour ce que je veux:

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

Mais install.packagesn'a pas d' versionargument . Comment fait-on ça?

Hirolau
la source
essayer checkBuilt? stackoverflow.com/questions/16503554/…
isomorphismes

Réponses:

150

Pour installer une ancienne version d'un package à partir des sources (dans R):

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

Si cela ne fonctionne pas pour vous et que vous êtes sous Windows, la raison est probablement le manque d'une chaîne d'outils appropriée pour créer / compiler des packages . Normalement, vous installez un binaire pré-compilé à partir de CRAN, mais ils archivent uniquement les sources des paquets , pas les binaires. [1] Cela signifie que vous devez installer Rtools afin de pouvoir tout compiler localement. (Remarque: Rtools n'est pas un package R. )

La réponse de @ shadow ci-dessous rend également le cas que vous pouvez utiliser devtools::install_version(). C'est également une bonne idée, mais elle est également sujette à la nécessité de Rtools sous Windows.

Depuis le 18 septembre 2015, une nouvelle version de package est apparue sur CRAN . Cela dépend du serveur MRAN Revolution Analytics pour installer les packages pour des versions ou des dates spécifiques:

# 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'))

Cela a l'avantage de ne pas obliger Rtools à installer des packages binaires sur Windows, mais ne fonctionne que depuis le 17/09/2014 (lorsque MRAN a été lancé).

Pour installer une version plus ancienne à partir de la ligne de commande (en dehors de R):

Vous pouvez également installer un package en utilisant R CMD INSTALLsur la ligne de commande (Terminal, Invite de commandes, etc.) une fois que vous avez la source du package ("tarball") localement sur votre machine, par exemple en utilisant wget(si vous l'avez):

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

ou, si vous êtes sous Windows, un équivalent utilisant PowerShell serait:

(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")

ou vous pouvez simplement télécharger la source de l'archive CRAN via votre navigateur Web.

Pour installer à partir du fichier local, vous pouvez simplement faire:

R CMD INSTALL ggplot2_0.9.1.tar.gz

Cela devrait fonctionner sur n'importe quelle plate-forme (avec la même mise en garde - que ci-dessus - concernant le besoin d'une chaîne d'outils pour la construction de packages).


[1] Ce n'est plus entièrement vrai. Depuis mars 2016, CRAN a commencé à héberger un serveur «CRAN Archive» qui contient des binaires Windows et Mac pour les très anciennes versions de R (> 5 ans). Vous pouvez maintenant installer directement à partir de ce serveur en utilisant install.packages(). Voir la nouvelle FAQ R 7.44 pour quelques détails.

Thomas
la source
4
Merci, je suppose que c'est la bonne manière. Dommage que j'obtiens maintenant: 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
Eu un problème similaire avec Rcpp. Cela peut être dû à la dépendance de la version R du package (DEPENDS: <version>), ou il se peut que la session R en cours d'exécution ne vous permette pas d'effectuer la mise à jour. Ce que j'ai trouvé a fonctionné pour moi était d'effectuer la mise à jour de la manière suggérée par Mark Butler (ci-dessous) (R CMD INSTALL your_version.tar.gz). C'était pour R 2.15.3 dans mon cas.
Robert Casey
@Antoine Êtes-vous sous Windows? Et si oui, avez-vous installé Rtools?
Thomas
@Thomas Merci d'avoir répondu. Oui, je suis sur Windows avec Rtools "pseudo-installé" voir ce fil .
Antoine
@Thomas Je vais essayer d'exécuter mon script sur Amazon EC2 pour éviter les problèmes locaux évidents sur ma machine (chemins de bibliothèque, versions de R vs versions de packages, problèmes de compilation, etc.)
Antoine
88

Le remotespackage offre une install_versionfonction qui peut le faire directement.

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

Auparavant, cette réponse pointait vers le devtoolspackage, qui réexporte également la install_versionfonction. Merci @MichaelChirico d'avoir souligné que le remotespackage est préférable.

ombre
la source
pouvez-vous conserver plusieurs versions du même package sans avoir à le faire à install_versionchaque fois que vous souhaitez charger une version spécifique? dire,library(ggplot2-0.9.1)
PatrickT
1
@PatrickT Vous pouvez le faire en utilisant une bibliothèque locale. Par exemple install_version('ggplot2', version = 0.9.1, lib = 'path_to_library_with_ggplot_0.9.1')etlibrary(ggplot2, lib.loc = 'path_to_library_with_ggplot_0.9.1')
ombre du
1
vous pouvez également utiliser .libPaths ("/ dir_for_custom_library_versions") avant d'exécuter install_version
tjjjohnson
1
De nos jours, je pense que remotes::install_versionc'est préférable car il remotess'agit d'un paquet beaucoup plus léger que devtools( devtools::install_versionn'est qu'une réexportation de remotes::install_version)
MichaelChirico
5

Utiliser install.packagescomme décrit dans une autre réponse ne fonctionne pas pour moi.

La meilleure alternative que j'ai trouvée est d'utiliser la fonction install_urldu package devtools.

Une autre possibilité que je n'ai pas explorée plus avant:

  1. Téléchargez l'ancien fichier source .tar.gz à partir des archives du package.
  2. Suivez les étapes décrites sur http://rtm.wustl.edu/writings/htrtargz.pdf pour l'installer localement.
Asieira
la source
Cela ne fonctionne pas pour moi, veuillez suivre ma question stackoverflow.com/q/22673474/684229 pour plus de détails.
TMS du
+1, la R CMD INSTALLcommande fonctionne également sur Ubuntu. Merci!!
Phani
5

Vous pouvez télécharger votre version appropriée à partir du lien ci-dessous sous forme de fichier zip.

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

Dans R Studio: Outils >> Installer les packages >> Installer depuis: (sélectionnez le menu déroulant)

Fichier d'archive du package (.zip, .tar.gz).

Choisissez votre fichier zip de package nouvellement téléchargé et installez le package

user23899
la source
4

J'ai trouvé une bonne solution, qui a fonctionné pour moi (les détails sont sur le lien ).

Commande dans la bibliothèque "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
la source
1

install.packagesMéthode pure

Voir ce fil sur la liste de diffusion r-devel . En réponse à Kurt Wheeler, Kurt Hornik révèle une fonctionnalité non documentée du site Web du CRAN pour spécifier la version spécifique d'un package.

Cette méthode fonctionnera tant que toutes les dépendances requises sont déjà installées:

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

Notez la structure URL ci-dessus. Cela résout le problème selon lequel CRAN a une structure d'URL différente pour la dernière version et pour les versions archivées:

# 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 méthode

Une autre option consiste à utiliser la remotes::install_version fonction . Cependant, vous devrez installer le remotes package .

Daniel Himmelstein
la source
0

Il existe un versionspackage qui simplifie considérablement cette tâche, pour les versions de package publiées depuis le 17/09/2014. Il utilise des instantanés du serveur MRAN de Revolution Analytics pour:

  • afficher les dates de sortie et la disponibilité MRAN de tout package CRAN ( available.versions),

  • installer les versions spécifiées d'un ou plusieurs packages ( install.versions), ou

  • installer les versions de package disponibles à toute date spécifiée ( install.dates). Il effectue l'installation à partir du serveur MRAN via la install.packagesfonction standard , de sorte que les versions binaires disponibles peuvent être installées au lieu d'avoir à compiler à partir de la source, et les dépendances de package à la date spécifiée peuvent être incluses.

Il peut bien sûr y avoir des problèmes de compatibilité avec les combinaisons de versions de package et de versions R. Pour exécuter différentes versions de R, voir par exemple cette page .

EdM
la source