Instalar una versión anterior del paquete R

134

Estoy tratando de usar Rpy2 y ggplot2 pero aparece un error. Después de buscar el error en línea, descubrí que el error ocurre porque hay cambios en el paquete ggplot2 que aún no se reflejan en Rpy2 (por ejemplo, vea esta publicación (Editar: El enlace ahora está muerto)).

Así que ahora necesito instalar una versión anterior de ggplot2. Aquí hay un seudocódigo para lo que quiero:

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

Pero install.packagesno tiene versionargumento . ¿Cómo lo hago?

hirolau
fuente
intentar checkBuilt? stackoverflow.com/questions/16503554/...
isomorphismes

Respuestas:

150

Para instalar una versión anterior de un paquete desde el origen (dentro de 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 esto no funciona para usted y está en Windows, la razón es probablemente la falta de una cadena de herramientas adecuada para compilar / compilar paquetes . Normalmente, instalaría un binario precompilado de CRAN, pero solo archivan las fuentes del paquete , no los binarios. [1] Esto significa que necesita instalar Rtools para poder compilar todo localmente. (Nota: Rtools no es un paquete R ).

La respuesta de @ shadow a continuación también explica el caso que puede usar devtools::install_version(). Esa también es una buena idea, pero también está sujeta a la necesidad de Rtools en Windows.

A partir del 18 de septiembre de 2015, apareció una nueva versión de paquete en CRAN . Esto se basa en el servidor Revolution Analytics MRAN para instalar paquetes para versiones o fechas específicas:

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

Eso tiene la ventaja de no requerir que Rtools instale paquetes binarios en Windows, pero solo funciona desde 2014-09-17 (cuando se lanzó MRAN).

Para instalar una versión anterior desde la línea de comandos (fuera de R):

También puede instalar un paquete mediante el uso R CMD INSTALLde la línea de comando (Terminal, Símbolo del sistema, etc.) una vez que tenga el origen del paquete ("tarball") localmente en su máquina, por ejemplo, utilizando wget(si lo tiene):

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

o, si estás en Windows, un equivalente usando PowerShell sería:

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

o simplemente puede descargar la fuente del archivo CRAN a través de su navegador web.

Para instalar desde el archivo local, simplemente puede hacer:

R CMD INSTALL ggplot2_0.9.1.tar.gz

Eso debería funcionar en cualquier plataforma (con la misma advertencia, como la anterior, sobre la necesidad de una cadena de herramientas para crear paquetes).


[1] Esto ya no es del todo cierto. A partir de marzo de 2016, CRAN comenzó a alojar un servidor "CRAN Archive" que contiene archivos binarios de Windows y Mac para versiones muy antiguas de R (> 5 años). Ahora puede instalar directamente desde este servidor utilizando install.packages(). Vea la nueva R FAQ 7.44 para algunos detalles.

Thomas
fuente
44
Gracias, supongo que es la forma correcta. Lástima que ahora tengo: 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
Tuve un problema similar con Rcpp. Esto podría deberse a la dependencia de la versión R del paquete (DEPENDE: <versión>), o puede ser que la sesión R en ejecución no le permita realizar la actualización. Lo que encontré funcionó para mí fue llevar a cabo la actualización de la manera que Mark Butler (a continuación) sugirió (R CMD INSTALL your_version.tar.gz). Esto fue para R 2.15.3 en mi caso.
Robert Casey
@Antoine ¿Estás en Windows? Y, si es así, ¿tiene instalado Rtools?
Thomas
@ Thomas Gracias por responder. Sí, estoy en Windows con Rtools "pseudoinstalado", vea este hilo .
Antoine
@Thomas Voy a intentar ejecutar mi script en Amazon EC2 para evitar los problemas locales obvios en mi máquina (rutas de biblioteca, versiones de R vs versiones de paquetes, problemas de compilación, etc.)
Antoine
87

El remotespaquete ofrece una install_versionfunción que puede hacer esto directamente.

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

Anteriormente, esta respuesta apuntaba al devtoolspaquete, que también reexporta la install_versionfunción. Gracias @MichaelChirico por señalar que el remotespaquete es preferible.

sombra
fuente
¿Puede mantener varias versiones del mismo paquete sin tener que hacerlo install_versioncada vez que desee cargar una versión específica? por ejemplo,library(ggplot2-0.9.1)
PatrickT
1
@PatrickT Puedes hacer esto usando una biblioteca local. Por ejemplo install_version('ggplot2', version = 0.9.1, lib = 'path_to_library_with_ggplot_0.9.1')ylibrary(ggplot2, lib.loc = 'path_to_library_with_ggplot_0.9.1')
sombra
1
también puede usar .libPaths ("/ dir_for_custom_library_versions") antes de ejecutar install_version
tjjjohnson el
1
Hoy en día creo que remotes::install_versiones preferible ya que remoteses un paquete mucho más liviano que devtools( devtools::install_versiones solo una reexportación de remotes::install_version)
MichaelChirico
5

Usar install.packagescomo se describe en otra respuesta no funciona para mí.

La mejor alternativa que encontré es usar la función install_urldel paquete devtools.

Otra posibilidad que no he explorado más a fondo:

  1. Descargue el archivo fuente .tar.gz anterior de los archivos del paquete.
  2. Siga los pasos documentados en http://rtm.wustl.edu/writings/htrtargz.pdf para instalarlo localmente.
asieira
fuente
Esto no funciona para mí, siga mi pregunta stackoverflow.com/q/22673474/684229 para más detalles.
TMS
+1, el R CMD INSTALLcomando también funciona en Ubuntu. ¡¡Gracias!!
Phani
5

Puede descargar su versión adecuada desde el siguiente enlace como un archivo zip.

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

En R Studio: Herramientas >> Instalar paquetes >> Instalar desde: (seleccione desplegable)

Archivo de archivo del paquete (.zip, .tar.gz).

Elija su archivo zip-paquete-recién descargado e instale el paquete

usuario23899
fuente
4

Encontré una buena solución, que funcionó para mí (los detalles están en el enlace ).

Comando en la biblioteca "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
fuente
1

install.packagesMétodo puro

Vea este hilo en la lista de correo de r-devel . En respuesta a Kurt Wheeler, Kurt Hornik revela una característica no documentada del sitio web de CRAN para especificar la versión específica de un paquete.

Este método funcionará siempre que tenga todas las dependencias necesarias ya instaladas:

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

Tenga en cuenta la estructura de URL anterior. Esto soluciona el problema de que CRAN tiene una estructura de URL diferente para la última versión que para las versiones archivadas:

# 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étodo

Otra opción es usar la remotes::install_version función . Sin embargo, deberá instalar el remotes paquete .

Daniel Himmelstein
fuente
0

Existe un versionspaquete que simplifica esta tarea considerablemente, para las versiones de paquete lanzadas desde el 17/09/2014. Utiliza instantáneas del servidor MRAN en Revolution Analytics para:

  • mostrar fechas de lanzamiento y disponibilidad MRAN de cualquier paquete CRAN ( available.versions),

  • instalar versiones especificadas de uno o más paquetes ( install.versions), o

  • instalar versiones de paquetes disponibles a partir de cualquier fecha especificada ( install.dates). Realiza la instalación desde el servidor MRAN a través de la install.packagesfunción estándar , por lo que se pueden instalar versiones binarias disponibles en lugar de tener que compilar desde el origen, y se pueden incluir las dependencias del paquete a partir de la fecha especificada.

Por supuesto, puede haber problemas de compatibilidad con combinaciones de versiones de paquetes y versiones R. Para ejecutar diferentes versiones de R, consulte, por ejemplo, esta página .

EdM
fuente