Andrew Gelman recientemente lamentó la falta de un proceso de actualización fácil para R (probablemente más relevante en Windows que Linux). ¿Alguien tiene un buen truco para hacer la actualización, desde instalar el software hasta copiar todos los ajustes / paquetes?
Esta sugerencia estaba contenida en los comentarios y es lo que he estado usando recientemente. Primero instale la nueva versión, luego ejecute esto en la versión anterior:
#--run in the old version of R
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")
Seguido de esto en la nueva versión:
#--run in the new version
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)
Respuestas:
Solo para completar, hay algunas formas de evitar que tenga este problema. Como dijo Dirk, guarde sus paquetes en otro directorio en su computadora.
Puede cambiar el valor predeterminado
.Library
valor utilizando la función.libPaths
demasiadoEsto pondrá esta ruta como primer valor en la
.Library
variable y la convertirá en la predeterminada.Si desea automatizar esto aún más, puede especificarlo en el archivo Rprofile.site, que encontrará en el directorio / etc / de su compilación R. Luego se cargará automáticamente cada vez que se cargue R, y ya no tendrá que preocuparse por eso. Simplemente puede instalar y cargar paquetes desde el directorio especificado.
Finalmente, tengo un pequeño código incluido en mi Rprofile.site que me permite reinstalar todos los paquetes cuando instalo una nueva versión de R. Solo tiene que enumerarlos antes de actualizar a la nueva versión R. Lo hago usando un archivo .RData que contiene una lista actualizada con todos los paquetes.
Hago el packagelist.RData especificando
.Last()
en mi Rprofile.site. Esto actualiza la lista de paquetes si instalé algunos:Cuando instalo una nueva versión de R, solo agrego los elementos necesarios al archivo Rprofile.site y todos los paquetes se reinstalan. Tengo que ajustar el Rprofile.site de todos modos (usando contrastes de suma, agregando el código adicional para Tinn-R, estas cosas), por lo que no es realmente un trabajo extra. Solo lleva más tiempo instalar todos los paquetes nuevamente.
Este último bit es equivalente a lo que se da en la pregunta original como solución. Simplemente no necesito preocuparme por obtener primero la lista de "instalados".
Nuevamente, esto no funciona sin problemas si tiene paquetes que no están instalados desde CRAN. Pero este código es fácilmente extensible para incluir esos también.
fuente
.Library
. En mi caso, apunta de nuevo a la carpeta de instalación de R si no ha cambiado (lo que particularmente no me gusta, pero bueno)Esta es una vieja pregunta, por supuesto, pero podría haber una nueva respuesta fácil (que funciona solo para Windows), que acabo de encontrar.
La mejor manera de hacerlo es desde el sistema RGui. Todos sus paquetes se transferirán a la nueva carpeta y los antiguos se eliminarán o guardarán (puede elegir cualquiera de ellos). Luego, una vez que abre RStudio nuevamente, reconoce inmediatamente que está utilizando una versión actualizada. Para mí esto funcionó a las mil maravillas,
Más información sobre {installr} aquí .
Simón
fuente
Dos sugerencias rápidas:
Utilice los archivos por lotes de Gabor, que se dice que comprenden herramientas que ayudan con, por ejemplo, esta reubicación masiva de bibliotecas. Advertencia: no los he usado.
No instale bibliotecas dentro del 'filetree' de la versión R instalada. En Windows, puedo colocar R en la versión C: / opt / R / R- $ pero colocar todas las bibliotecas en C: / opt / R / library / usando el siguiente fragmento, ya que alivia el problema en primer lugar:
fuente
El método sugerido anteriormente no funcionará por completo si tiene paquetes que no son de CRAN. Por ejemplo, un paquete personal o un paquete descargado de un sitio que no es CRAN.
Mi método preferido en Windows (actualización 2.10.1 a 2.11.0):
R-2.10.0/library/*
aR-2.11.0/library/
update.packages()
fuente
Con respecto a la solución dada en la pregunta, puede que no sea fácil ejecutar su versión anterior de R si ya ha instalado la nueva versión. En este caso, aún puede reinstalar todos los paquetes faltantes de la versión R anterior de la siguiente manera.
(Tenga en cuenta que el argumento
list.files()
en la primera línea de código debería ser la ruta al directorio de la biblioteca para su versión R anterior, donde están todas las carpetas de paquetes en la versión anterior. En mi caso actual, esto es"/Library/Frameworks/R.framework/Versions/3.2/Resources/library"
. Esto será diferente si su versión R anterior no es 3.2, o si está en Windows)La
if
declaración asegura que un paquete no esté instalado sifor
bucle.fuente
Siguiendo la sugerencia de Dirk, aquí hay un código R para hacerlo en Windows: Cómo actualizar fácilmente R en Windows XP
Actualización (15.04.11): escribí otra publicación sobre el tema, explicando cómo lidiar con problemas comunes de actualización de R en Windows 7
fuente
installr
que automatiza este proceso (actualmente solo en Windows) r-statistics.com/tag/installr o github.com/talgalili/installrinstall.packages(installr); library(installr); updateR(TRUE)
. Al final,[1] TRUE
aparece. Por el excelente paquete de Galili, pasé de R 3.6.0 a R 3.6.1 muy fácilmente. Gracias tal.Dos opciones:
.libPaths("C:/R/library")
fuente
Estoy en Windows 8 y por alguna extraña razón, nunca puedo instalar paquetes usando mis conexiones a Internet.
Generalmente lo instalo usando el archivo .zip de CRAN.
Después pasé de R 3.2.5 a R 3.3.1.
Simplemente copié los paquetes de
C:\Path\to\packa\R\win-library\3.2
aC:\Path\to\packa\R\win-library\3.3
.Y luego reinicié la sesión R. Funcionó a la perfección. No he comprobado si TODOS los paquetes funcionan bien. Pero, los que revisé están funcionando perfectamente bien. Espero que este truco funcione para todos.
Salud.
fuente
La respuesta aceptada podría funcionar si tiene previsión, pero ya me había deshecho de la versión anterior, por lo que no pude seguir estas instrucciones. Los pasos descritos a continuación funcionaron para la actualización de OSX de 2.1 y 3.1.
ACTUALIZADO: Para obtener el directorio de su versión más reciente (en lugar de escribir 3.1 o 3.2) puede usar los siguientes comandos. El segundo uno convierte directamente a la R-variables, saltar
.
y..
y.DS_Store
, el uso de:(Agréguelo
|pbcopy
al final para copiarlo directamente en el portapapeles de su Mac)Luego, dentro de R , puede pegar esa variable que se genera. Una vez que se define en la nueva versión de R, puede recorrer los paquetes instalados siguiendo las instrucciones anteriores ...
fuente
para mí esta página es buena https://www.r-statistics.com/2013/03/updating-r-from-r-on-windows-using-the-installr-package/ u otra opción es simplemente instalar el nuevo opción y al final lo pones, por ejemplo en windows en mi pc
.libPaths (c ("D: /Documents/R/win-library/3.2", "C: / Archivos de programa / R / R-3.2.3 / library", "C: / Archivos de programa / R / R-3.2 .0 / library "," D: /Documents/R/win-library/2.15 ")
cada ruta de la última versión en mi caso siempre pongo la primera ruta es "D: /Documents/R/win-library/3.2" que es fija y luego pongo la otra porque no necesita copiar ni mover ningún paquete, en mi sugest solo llámalo
fuente
linux
+bash
+debian
+apt
usuarios:Si está instalando / actualizando a la versión más reciente de
R
, entonces podemos suponer que tieneroot
permisos. (No es esencial, simplemente hace que el proceso sea mucho más simple; por coherencia, el siguiente script se usasudo
para todas las instalaciones). Como losR
paquetes también se instalanroot
, por lo tanto, está permitido colocarlos/usr/local/
.La llamada a
curl
continuación asume que ya está interesado en elsid
lanzamiento deR
la última versión inestable (como se requiere al construir / verificar unR
paquete), es decircat /etc/apt/sources.list | grep 'sid' || exit 1
aunque esto podría reemplazarse fácilmente con una versión estable reciente, por ejemplo
buster
.Nótese que estoy no usando una clave como es normalmente recomendada . Esto no es esencial, particularmente si (como en el script que sigue) instalamos paquetes dentro de
R
sí mismo (aRscript -e
continuación). Además, tales teclas tienden a romperse / cambiar cada pocos años. Por lo tanto, puede agregar el siguiente prefacio al archivoR.sh
siguiente:sudo apt-key adv --keyserver keyserver.ubuntu.com \ --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
El
array
deR
paquetes claramente no es exhaustiva, pero da algunos ejemplos que personalmente encuentro útiles. Una nueva instalación / actualización con eldebian
paqueter-recommended
, como se muestra a continuación, debería proporcionar la última versión de todos los paquetes estándar 'recomendados' (por ejemplosurvival
). Creo que puede haber un ligero retraso entre una versión de CRAN y una actualización deldebian
paquete correspondiente . Por lo tanto, es posible que desee agregar algunos de estos aarray
continuación siR
es esencial tener la última versión de un paquete 'recomendado' .Los
debian
paquetes instalados en el proceso a continuación tampoco son esenciales (para usarr-base
) ni exhaustivos, pero proporcionan un no. de 'complementos' que son importantes para un no razonable. deR
paquetesDe todos modos ... coloque lo siguiente en
R.sh
:Luego ejecutarlo, por ejemplo, suponiendo en el directorio ya:
source R.sh
.Instalación de paquetes (si
debian
oR
) uno por uno en un bucle de Shell es algo ineficaz, pero permite el rastreo más simple de errores, en mi humilde opinión. Puede tomar algo de tiempo dependiendo del no. deR
paquetes, por lo que quizás sea más sencillo dejarlo correr durante la noche ...fuente
r-recommended
. 'r-base-devel' se conoce comor-base-dev
(debian
paquete): ya estaba incluido. No soy reacio a usar una clave de seguridad (respuesta actualizada). La respuesta se mantiene alejada del uso de aPPA
= Archivos de paquetes personales, ya que estos dependen necesariamente de una persona y, por lo tanto, son potencialmente falibles. Como dice el propio Michael Rutter (2012): "Si ha estado utilizando CRAN, entonces no hay razón para cambiar al PPA, ya que se proporcionan los mismos paquetes en ambas ubicaciones".