Instalar paquetes en R

Introducción a R Conceptos básicos de R
Instalar nuevos paquetes en R de diversas fuentes

Un paquete de R es una biblioteca de funciones que se han desarrollado para cubrir algunas necesidades o métodos científicos específicos que no están implementados en las funciones de R base. Las funciones que R proporciona de manera predeterminada son limitadas, por lo que es posible que te preguntes cómo instalar nuevos paquetes en R. Hay varias fuentes para instalar paquetes en R. En este tutorial revisaremos cómo instalar un paquete en R de todas las maneras posibles.

Instalando paquetes desde CRAN

CRAN es el repositorio oficial de paquetes de R, que cuenta con miles de paquetes de R gratuitos. La mayoría de ellos han sido desarrollados por científicos de datos, estadísticos, profesores universitarios e investigadores. Hay todo tipo de paquetes, desde paquetes de gráficos como el conocido ggplot2 hasta temas muy específicos como el paquete DTDA.cif, que implementa estimadores para funciones de incidencia acumuladas de riesgos competitivos bajo truncamiento doble.

CRAN es el repositorio oficial de R. Todos los paquetes han sido probados de manera automática y cumplen con la política de código de CRAN.

En primer lugar, debes buscar el nombre del paquete que quieras instalar. Es posible que desees buscar sobre un tema buscando en Google algo como: ‘paquete de gráficos R’ o ‘paquete de R para series de tiempo’. También puedes usar las CRAN Task Views, donde puedes encontrar los paquetes de R más relevantes por tema.

¡Precaución! Que un paquete esté en CRAN no implica que los métodos estén siempre bien implementados, ya que no hay comprobaciones de terceros sobre esto. Además, puede haber errores que no se hayan comprobado. En caso de que encuentres algún tipo de error o problema contacta con el responsable del mantenimiento del paquete.

Función para instalar paquetes de R

Una vez hayas decidido qué paquete instalar, simplemente ejecuta a la función install.packages con el nombre del paquete dentro de los paréntesis con comillas. Como ejemplo, vamos a instalar el paquete calendR, que permite crear calendarios mensuales y anuales, pero tú puedes probar a instalar el paquete que prefieras.

install.packages("calendR")

Después de la instalación, necesitas cargar el paquete si quieres acceder a sus funciones. Para ello puedes utilizar la función library especificando el nombre del paquete con o sin comillas.

library(calendR)
library("calendR") # Equivalente

Una vez cargado puedes usar la función help o ? con el nombre del paquete o el nombre de cualquier función para ver la documentación. También encontrarás ejemplos útiles para comprender cómo funciona el paquete.

help("calendR")
help(calendR) # Equivalente
?calendR      # Equivalente

# Ayuda de la función principal del paquete
help(calendR) 

Además, en caso de que resulte de interés, puedes saber dónde se instalan los paquetes ejecutando la función .libPaths().

 .libPaths() # Devuelve el directorio de instalación

Instalando paquetes de CRAN desde el menú

Alternativamente, puedes instalar paquetes de R desde el menú del entorno de desarrollo.

  • En RStudio, ve a ToolsInstall packages… y en la opción Install from, selecciona Repository (CRAN) y luego especifica los paquetes que quieras instalar.
  • En R GUI ve a PaquetesInstalar paquete(s)…, selecciona un ‘mirror’ e instala el paquete.

Instalando paquetes en R desde un zip

Es posible que hayas descargado un paquete en formato zip o tar.gz. Para instalar el paquete desde un archivo zip local solo necesitas llamar a la función install.packages con los argumentos repos = NULL y type = "source". Ten en cuenta que la ruta del archivo no debe contener espacios.

install.packages("ruta\nombre_del_paquete.extension",
                 repos = NULL, type = "source")

También puedes configurar primero el entorno de trabajo con la función setwd en la carpeta donde se descargó el archivo del paquete y luego instalar el paquete especificando el nombre del archivo zip o tar.gz.

setwd("ruta_del_archivo")
install.packages("nombre_del_paquete.extension",
                 repos = NULL, type = "source")

La última opción es usar el menú. En RStudio ve a ToolsInstall packages y en la opción Install from elige Package Archive File (.zip; .tar.gz) y selecciona tu archivo. En R GUI ve a PaquetesInstall package(s) from local files.

En caso de que tengas el zip alojado en alguna URL, puedes usar la función install.packages.zip del paquete installr. Ten en cuenta que también puedes instalar paquetes desde CRAN (incluso versiones anteriores) de esta manera.

# install.packages("installr")

library(installr)
install.packages.zip("https://cran.r-project.org/bin/windows/contrib/r-release/calendR_1.0.zip")

Instalar varios paquetes a la vez

Si necesitas instalar varios paquetes a la vez sin escribir la misma función una y otra vez, puedes utilizar la función c dentro de la función install.packages. Ten en cuenta que ahora sí se necesita usar comillas para especificar el nombre de los paquetes.

install.packages(c("ggplot2", "dplyr"))

Ahora ya sabes cómo instalar paquetes de R desde CRAN, pero debes saber que no todos los paquetes de R están en CRAN por muchas razones. La razón principal es que CRAN tiene una política de requisitos y comprobaciones de código y algunos desarrolladores no quieren pasar tiempo solucionando pequeños detalles para cumplirlos. Otras veces existe una versión de desarrollo en GitHub de un paquete de CRAN con funciones en pruebas. En las siguientes secciones aprenderás cómo instalar paquetes de otras fuentes disponibles.

En las siguientes secciones mostraremos cómo instalar paquetes de fuentes no oficiales. Ten en cuenta que ciertos paquetes pueden estar en un proceso de desarrollo y podrían llegar a dar erores inesperados en algunas ocasiones.

Instalar paquetes de R desde GitHub o GitLab

GitHub es una conocida plataforma de intercambio de código. Si accedes a la página puedes buscar paquetes de R utilizando la barra de búsqueda y escribiendo algo como: “plot package language: R” en caso de que desees buscar paquetes para gráficos. La parte “language:R” es un comando del buscador de la web para restringir los resultados a repositorios de código R. Supón que quieres descargar la versión de desarrollo del paquete ggplot2 de GitHub. La dirección URL será como sigue:

https://github.com/tidyverse/ggplot2

El primer paso es instalar y cargar el paquete devtools, disponible en CRAN. Si encuentras algún error significa que también necesitas instalar las RTools.

install.packages(devtools)
library(devtools)

A continuación puedes llamar a la función install_github con "nombre_de_la_cuenta/nombre_del_repositorio" como argumento para instalar el paquete desde GitHub.

 # Instalando el paquete ggplot2 desde GitHub
install_github("tidyverse/ggplot2")

Cabe mencionar que si no quieres cargar devtools cada vez que quieras instalar un paquete de GitHub, puede usar devtools::install_github("nombre_de_la_cuenta/nombre_del_repositorio"), ya que el operador :: permite llamar funciones desde un paquete sin la necesidad de cargarlo.

Instalar paquetes desde R-Forge

El proyecto R Forge es una web con herramientas de desarrollo de paquetes y repositorios. Como ejemplo, si quisieses instalar el paquete MPAgenomics, debes especificar en el argumento repos de la función install.packages la URL del proyecto de R Forge. El argumento dependencies se usa cuando repos no es NULL para especificar si las dependencias del paquete que se está instalando deben ser instaladas también o no.

install.packages("MPAgenomics", repos = "http://R-Forge.R-project.org",
                 dependencies = TRUE)

Instalar paquetes en R desde Bioconductor

Bioconductor es otro proyecto que aloja herramientas y paquetes de R para analizar datos biológicos. Antes de nada tienes que instalar el paquete BiocManager.

install.packages("BiocManager")

Una vez instalado puedes usar la función install del paquete.

# Instalando el paquete nanotatoR
BiocManager::install("nanotatoR") 

Al igual que sucedía con los paquetes de CRAN, puedes instalar varios paquetes a la vez.

# Instalando los paquetes NBSplice y ncdfFlow
BiocManager::install("NBSplice", "ncdfFlow") 

Puedes ver la lista completa de paquetes de Bioconductor escribiendo BiocManager::available(). Para más información sobre el proceso de instalación de Bioconductor puedes ver la referencia oficial sobre paquetes de Bioconductor.

Instalar paquetes de R en la Notebook de Jupyter

En el caso de que uses R bajo el entorno “conda” con el Notebook Jupyter y necesites más paquetes de R que los incluidos como “Essentials” puedes usar la función base para instalar paquetes pero especificando el argumento repos como en el siguiente ejemplo:

install.packages("ggplot2", repos = "http://cran.es.r-project.org")

Actualizar paquetes de R

Actualizar paquetes en R puede ser tedioso si tienes que reinstalar los paquetes una y otra vez cuando algunos tiene una versión más nueva disponible. Puedes ver la lista completa de tus paquetes de R que no están actualizados con la función old.packages.

old.packages()

Puedes actualizar algunos de ellos manualmente con la función install.packages o llamando a la función update.packages. Si estableces el argumento ask como FALSE, evitarás que R muestre mensajes emergentes.

update.packages()
update.packages(ask = FALSE)

Solo podrás actualizar un paquete si no está cargado en memoria. Si ya has cargado un paquete y deseas actualizarlo, usa la función detach de la siguiente manera: detach(package:nombre_del_paquete, unload = TRUE)

Listar las funciones de un paquete

Una vez instalado, puedes obtener una lista de todas las funciones del paquete. Si el paquete está en CRAN, encontrarás documentación en formato PDF de todas las funciones dentro de una página con la siguiente estructura: https://cran.r-project.org/web/packages/nombre_del_paquete. Recuerda que puedes acceder a esta documentación en formato HTML con la función ? o help.

help(package = ggplot2)

También puedes usar los comandos lsf.str o ls para enumerar todas las funciones dentro de un paquete ya cargado.

library(ggplot2)
ls("package:ggplot2")      # Nombres de las funciones
lsf.str("package:ggplot2") # Nombres con descripción de los argumentos

Otra opción es escribir: nombre_del_paquete:: y se mostrará una lista en RStudio en forma de desplegable. En R GUI deberás presionar el botón tabular para que se muestren las funciones en pantalla, aunque es necesario destacar que si el paquete contiene muchas funciones no se mostrarán todas, como sucede con el paquete ggplot2:

> ggplot2::

ggplot2::scale_fill_brewer         ggplot2::scale_size
ggplot2::GeomLine                  ggplot2::ScaleContinuousIdentity
ggplot2::geom_boxplot              ggplot2::guide_legend
ggplot2::ScaleDiscreteIdentity     ggplot2::Layout
ggplot2::scale_colour_ordinal      ggplot2::geom_hex
ggplot2::GeomRasterAnn             ggplot2::panel_cols
ggplot2::scale_colour_date         ggplot2::StatYdensity
ggplot2::stat_bin_2d               ggplot2::scale_y_sqrt
ggplot2::aes_all                   ggplot2::alpha
ggplot2::scale_shape               ggplot2::position_dodge2
[...truncated]

Ver el código fuente de las funciones de un paquete

Puede que estés interesado en inspeccionar el código fuente de algunas funciones. Para ello tienes varias opciones:

  • Llamar el nombre de la función en la consola.
  • Presionar Ctrl + Click Izquierdo o Cmd + Click Izquierdo en el nombre del función (escrita en un script) cuando uses RStudio.
  • En la página de CRAN del paquete (o GitHub, R-forge, …), puedes descargar el archivo e inspeccionar manualmente el código.

Ten en cuenta que si la función está escrita en Fortran, C o en un lenguaje diferente a R, no podrás ver el código con el primer y el segundo método.

Comprobar si un paquete está instalado

Es habitual que no recuerdes si tienes un paquete instalado y no quieres perder el tiempo volviéndolo a instalar. Para evitar esto puedes usar la función require. La principal diferencia entre require y library es que la primera devuelve un TRUE o FALSE y la segunda devuelve un error si el paquete no está instalado. La función require está diseñada para usarse dentro de otras funciones.

# Si FALSE, instala el paquete
if (require("ggplot2")) install.packages("ggplot2")

La siguiente línea de código también devolverá un TRUE si el paquete está instalado o FALSE en caso contrario.

"ggplot2" %in% rownames(installed.packages())

Error en install.packages: no se puede eliminar la instalación previa del paquete

Si encuentras este error significa que podrías estar utilizando diferentes versiones de R en el mismo ordenador. Las soluciones son:

  • Cerrar todas las sesiones abiertas de R, abrirlo de nuevo e instalar el paquete.
  • Si lo anterior no funciona revisa el error y ve a la dirección que se indica donde está el archivo 00LOCK y elimínalo.
  • Otra opción es usar la función .libPaths(), que devuelve la ruta donde están instaladas las librerías y borra el paquete que da problemas para realizar una instalación limpia.

¿No consigues instalar un paquete?

Para finalizar, cabe destacar que si no consigues instalar paquetes en R puede ser debido a diversas razones:

  • Estás desconectado de internet.
  • El paquete ya no está disponible. Puedes econtrar versiones antiguas con: https://cran.r-project.org/src/contrib/Archive/Nombre_del_paquete.
  • Has escrito mal el nombre del paquete. Recuerda que R distingue entre mayúsculas y minúsculas.
  • Si se necesitan las Rtools para compilar el paquete, tendrás que instalarlas primero.

Si nada funciona, intenta cerrar y abrir R de nuevo, o inténtalo en otro ordenador para verificar si el problema persiste o se debe a tu configuración local.