Instalación de una versión anterior del paquete R

Resuelto hirolau asked hace 54 años • 8 respuestas

Estoy intentando utilizar Rpy2 y ggplot2 pero aparece un error. Después de buscar un poco el error en línea, descubrí que el error se produce porque hay cambios en el paquete ggplot2 que aún no se reflejan en Rpy2 (por ejemplo, consulte esta publicación (Editar: el enlace ya no está disponible)).

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

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

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

hirolau avatar Jan 01 '70 08:01 hirolau
Aceptado

Para instalar una versión anterior de un paquete desde el código fuente (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 probablemente sea la falta de una cadena de herramientas adecuada para crear/compilar paquetes . Normalmente, instalaría un binario precompilado desde CRAN, pero solo archivan fuentes de paquetes , no 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 demuestra que puedes 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 del paquete en CRAN . Esto se basa en el servidor MRAN de Revolution Analytics 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'))

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

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

También puede instalar un paquete usando R CMD INSTALLla línea de comando (Terminal, Símbolo del sistema, etc.) una vez que tenga la fuente del paquete ("tarball") localmente en su máquina, por ejemplo usando 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, mencionada anteriormente, sobre la necesidad de una cadena de herramientas para crear paquetes).


[1] Esto ya no es del todo cierto. Desde 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 usando install.packages(). Consulte la nueva pregunta frecuente de R 7.44 para obtener algunos detalles.

Thomas avatar Jun 13 '2013 08:06 Thomas

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 remoteses preferible el paquete.

shadow avatar Apr 24 '2015 07:04 shadow

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 tengas 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_versionmétodo

Otra opción es utilizar la remotes::install_version función . Sin embargo, necesitarás instalar el remotes paquete .

Daniel Himmelstein avatar Mar 04 '2019 21:03 Daniel Himmelstein