Actualizar R en Windows no es fácil. Aunque las FAQ de R ofrecen directrices, algunos usuarios pueden preferir simplemente ejecutar un comando para actualizar su R a la última versión. De eso trata el nuevo paquete {installr}.
El paquete {installr} ofrece un conjunto de funciones de R para la instalación y actualización de software (actualmente, sólo en SO Windows), con un enfoque especial en el propio R. Para actualizar R, basta con ejecutar el siguiente código:
# installing/loading the package:if(!require(installr)) {install.packages("installr"); require(installr)} #load / install+load installr# using the package:updateR() # this will start the updating process of your R installation. It will check for newer versions, and if one is available, will guide you through the decisions you'd need to make.
La ejecución de esta función realizará los siguientes pasos:
-
Comprobar cuál es la última versión de R. Si la versión actual de R instalada está actualizada, la función termina (y devuelve FALSE)
-
Si hay una versión más nueva de R, se le preguntará si desea revisar las NOTICIAS de la última versión de R – para decidir si instalar el
más nuevo R o no. -
Si lo desea – la función descargará e instalará la última versión de R. (deberá pulsar los botones «next» por su cuenta)
-
Una vez realizada la instalación, deberá pulsar «any-key», y la función procederá a copiar todos sus paquetes de su antigua (bueno, actual) instalación de R, en su instalación de R más reciente.
-
A continuación, puede borrar todos los paquetes de su antigua instalación de R.
-
Después de que sus paquetes sean movidos (y los viejos posiblemente borrados), tendrá la opción de actualizar todos sus paquetes en la nueva versión de R.
-
Por último – puede abrir el nuevo Rgui y cerrar la sesión actual de su viejo R. (Esto es un poco buggy en la versión 0.8, pero ha sido corregido en la versión 0.8.1)
Si sabes que quieres actualizar R, y quieres que los paquetes se muevan (no se copien, se MOVAN), puedes simplemente ejecutar:
# installing/loading the package:if(!require(installr)) { install.packages("installr"); require(installr)} #load / install+load installrupdateR(F, T, T, F, T, F, T) # install, move, update.package, quit R.
Dado que los distintos pasos están divididos en funciones individuales, también puedes elegir qué ejecutar usando la función correspondiente:
# installing/loading the package:if(!require(installr)) { install.packages("installr"); require(installr)} #load / install+load installr# step by step functions:check.for.updates.R() # tells you if there is a new version of R or not.install.R() # download and run the latest R installercopy.packages.between.libraries() # copy your packages to the newest R installation from the one version before it (if ask=T, it will ask you between which two versions to perform the copying)
Si te gusta usar el sistema de librerías globales, puedes ejecutar lo siguiente en el viejo R:
# installing/loading the package:if(!require(installr)) { install.packages("installr"); require(installr)} #load / install+load installrupdateR(F, T, F, F, F, F, T) # only install R (if there is a newer version), and quits it.
Y luego ejecutar lo siguiente en la nueva versión de R:
source("https://www.r-statistics.com/wp-content/uploads/2010/04/upgrading-R-on-windows.r.txt")New.R.RunMe()
El paquete {installr} también ofrece funciones para instalar varios otros programas en Windows. Estas funciones incluyen: install.pandoc (que se mencionó en este blog recientemente), install.git, install.Rtools, install.MikTeX, install.RStudio, y unas funciones generales install.URL e install.packages.zip. Puedes verlas más explicadas en el manual de referencia del paquete.
Solicitudes de características, informes de errores – y tu ayuda para mejorar el paquete
Puedes ver la última versión de installr en github, donde también puedes enviar informes de errores (también puedes simplemente dejar un comentario en este post). Dado que este es mi primer paquete de R, podría haber (por ejemplo: probablemente haya) omitido algo aquí o allá. Así que cualquier comentario sobre cómo mejorar mi código/documentación/R-fu, será muy bienvenido (aquí o en github).
Si este tipo de codificación es divertida/fácil para ti, puedes ayudarme a mejorar este paquete en github. Nuevas características geniales que creo que se pueden añadir (por mí o por otros) son:
- Añadir una función uninstall.R – para eliminar la versión antigua de R.
- Añadir más soporte para la actualización de R para la gente que utiliza una biblioteca global para sus paquetes.
- ¡Añadir soporte para Linux y Mac! Esto es menos probable que lo haga por mi cuenta – y me encantaría ver a alguien más extender mi código a otros sistemas de operación.
- GUI – añadir una opción basada en el menú para ejecutar updateR. Algo como help->»check for updates» sería genial. (p.s: esta idea vino de Yihui Xie)
- Añadir aún más funciones de install.software. Si tienes funciones para las que te gustaría ser capaz de instalarlas fácilmente – sólo házmelo saber y podría ser incluido en futuras versiones.
Gracias
Nota final, me gustaría agradecer a las muchas personas que han desarrollado herramientas MARAVILLOSAS para hacer posible el desarrollo de paquetes R (e incluso algo rápido), en Windows. Estos incluyen al Prof. Brian Ripley y Duncan Murdoch por Rtools, también a Uwe Ligges por su trabajo en CRAN, Hadley Wickham por devtools (en general, y por su documentación), Yihui Xie por roxygen2, JJ y otros en el equipo de RStudio por RStudio, la gente detrás de git y github, y más. Probablemente hay más cosas que puedo agradecer a estas personas, y muchas más personas a las que debería agradecer, pero no puedo averiguar quiénes son probablemente (siéntase libre de enviarme un correo electrónico, aprecio su trabajo incluso si no está claro para mí que están detrás de él).