Saltar al contenido principal
InicioTutorialesProgramación R

Paquetes R: Tutorial para principiantes

Una introducción a los paquetes de R basada en 11 de las preguntas más frecuentes de los usuarios.
may 2024  · 23 min leer

Los paquetes R son colecciones de funciones y conjuntos de datos desarrollados por la comunidad. Aumentan la potencia de R mejorando las funcionalidades básicas de R existentes o añadiendo otras nuevas. Por ejemplo, si trabaja habitualmente con marcos de datos, probablemente habrá oído hablar de dplyr o data.tabledos de los paquetes más populares de R.

Pero imagina que quieres procesar textos coreanos en lenguaje natural, extraer datos meteorológicos de la web o incluso estimar la evapotranspiración real mediante modelos de balance energético de la superficie terrestre, ¡los paquetes de R te lo ponen fácil! Recientemente, el repositorio oficial(CRAN) alcanzó los 10.000 paquetes publicados, y muchos más están disponibles públicamente a través de Internet.

Si estás empezando con R, este post cubrirá los conceptos básicos de los paquetes de R y cómo utilizarlos. Abarcará los siguientes temas y 11 preguntas frecuentes de los usuarios:

Empieza a aprender R gratis

Introducción a R

BeginnerSkill Level
4
2.7M learners
Domine los conceptos básicos del análisis de datos en R, incluidos vectores, listas y marcos de datos, y practique R con conjuntos de datos reales.

1. ¿Qué es un paquete R?

Empecemos con algunas definiciones. Un paquete es una forma adecuada de organizar tu propio trabajo y, si quieres, compartirlo con los demás. Normalmente, un paquete incluirá código (¡no sólo código R!), documentación para el paquete y las funciones que contiene, algunas pruebas para comprobar que todo funciona como debería, y conjuntos de datos.

La información básica sobre un paquete se proporciona en el archivo DESCRIPTION, donde se puede averiguar qué hace el paquete, quién es el autor, a qué versión pertenece la documentación, la fecha, el tipo de licencia que utiliza y las dependencias del paquete.

Tenga en cuenta que también puede utilizar el enlace alternativo de estadísticas para ver el archivo DESCRIPTION.

Además de encontrar los archivos DESCRIPTION como cran.r-project.org o stat.ethz.ch, también puede acceder al archivo de descripción dentro de R con el comando packageDescription("package"), a través de la documentación del paquete help(package = "package"), o en línea en el repositorio del paquete.

Por ejemplo, para el paquete "stats", estas vías serán:

packageDescription("stats")
help(package = "stats")

2. ¿Qué son los repositorios de R?

Un repositorio es un lugar donde se encuentran los paquetes para que puedas instalarlos desde él. Aunque usted o su organización dispongan de un repositorio local, lo normal es que estén en línea y sean accesibles a todo el mundo. Tres de los repositorios más populares para paquetes R son:

  • CRAN: el repositorio oficial, es una red de servidores ftp y web mantenidos por la comunidad R en todo el mundo. La fundación R lo coordina, y para que un paquete se publique aquí, tiene que pasar varias pruebas que garanticen que el paquete sigue las políticas de CRAN
  • Bioconductor: se trata de un repositorio temático destinado a software de código abierto para bioinformática. Como CRAN, tiene sus propios procesos de envío y revisión, y su comunidad es muy activa, con varias conferencias y reuniones al año.
  • Github: aunque no es específico de R, Github es probablemente el repositorio más popular para proyectos de código abierto. Su popularidad proviene del espacio ilimitado para el código abierto, la integración con git, un software de control de versiones, y su facilidad para compartir y colaborar con otros. Pero tenga en cuenta que no lleva asociado ningún proceso de revisión.

3. Cómo instalar un paquete R

Instalación de paquetes R desde CRAN

La forma de instalar un paquete R dependerá de dónde se encuentre. Por lo tanto, para los paquetes disponibles públicamente, esto significa a qué repositorio pertenece. La forma más común es utilizar el repositorio CRAN, entonces sólo necesita el nombre del paquete y utilizar el comando install.packages("package").

Por ejemplo, el paquete más antiguo publicado en CRAN y que sigue en línea y actualizándose es el paquete vioplot de Daniel Adler.

¿Puede encontrar la fecha de publicación? Pista: Está en la descripción del paquete ;).

Para instalarlo desde CRAN, tendrá que utilizar:

install.packages("vioplot")

Después de ejecutar esto, recibirá algunos mensajes en la pantalla. Dependerán del sistema operativo que esté utilizando, de las dependencias y de si el paquete se ha instalado correctamente.

Vamos a echar un vistazo más profundo en la salida de la instalación vioplot, algunos de los mensajes que puede obtener son:

Installing package into ‘/home/username/R/x86_64-pc-linux-gnu-library/3.3’
(as ‘lib’ is unspecified)

Indica dónde está instalado el paquete en su ordenador, y puede indicar una ubicación de carpeta diferente utilizando el parámetro lib.

trying URL 'https://cran.rstudio.com/src/contrib/vioplot_0.2.tar.gz'
Content type 'application/x-gzip' length 3801 bytes
==================================================
downloaded 3801 bytes

Aquí recibirá información sobre el origen y el tamaño del paquete. Esto dependerá de la réplica de CRAN que haya seleccionado.

También puedes cambiarlo, pero leerás más sobre esto más adelante en este post.

* installing *source* package ‘vioplot’ ...
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (vioplot)

Estos son los mensajes de la propia instalación, el código fuente, la ayuda, algunas pruebas y, por último, un mensaje de que todo ha ido bien y el paquete se ha instalado correctamente. Dependiendo de la plataforma en la que te encuentres, estos mensajes pueden variar.

The downloaded source packages are in
    ‘/tmp/RtmpqfWbYL/downloaded_packages’

El último dato le indica dónde se encuentran los archivos originales del paquete. No son necesarios para el uso del paquete, por lo que suelen copiarse en una ubicación temporal de la carpeta.

Por último, para instalar más de un paquete R a la vez, basta con escribirlos como un vector de caracteres en el primer argumento de la función install.packages():

install.packages(c("vioplot", "MASS"))

Instalación desde réplicas de CRAN

Recuerde que CRAN es una red de servidores (cada uno de ellos llamado "espejo"), por lo que puede especificar cuál desea utilizar. Si está utilizando R a través de la interfaz RGui, puede hacerlo seleccionándolo de la lista que aparece justo después de utilizar el comando install.packages(). En RStudio, la réplica ya está seleccionada por defecto.

También puede seleccionar su réplica utilizando chooseCRANmirror(), o directamente dentro de la función install.packages() utilizando el parámetro repo. Puede consultar la lista de espejos disponibles en getCRANmirrors() o directamente en la página de espejos de CRAN.

Ejemplo: para utilizar la réplica de la Biblioteca de la Universidad de Gante (Bélgica) para instalar el paquete vioplot, puede ejecutar lo siguiente:

install.packages("vioplot", repo = "https://lib.ugent.be/CRAN")

Instalación de paquetes Bioconductor

En el caso de Bioconductor, la forma estándar de instalar un paquete es ejecutando primero el siguiente script:

source("https://bioconductor.org/biocLite.R")

Esto instalará algunas funciones básicas necesarias para instalar paquetes bioconductores, como la función biocLite(). Si desea instalar los paquetes principales de Bioconductor, simplemente escríbalo sin más argumentos:

biocLite()

Sin embargo, si sólo está interesado en algunos paquetes concretos de este repositorio, puede escribir sus nombres directamente como un vector de caracteres:

biocLite(c("GenomicFeatures", "AnnotationDbi"))

Instalación de paquetes a través de devtools

Como has leído más arriba, cada repositorio tiene su propia forma de instalar un paquete desde ellos, por lo que en el caso de que utilices regularmente paquetes de diferentes fuentes, este comportamiento puede ser un poco frustrante. Una forma más eficiente es probablemente utilizar el paquete devtools para simplificar este proceso, ya que contiene funciones específicas para cada repositorio, incluido CRAN.

Puede instalar devtools como de costumbre con install.packages("devtools"), pero puede que también necesite instalar Rtools en Windows, las herramientas de línea de comandos Xcode en Mac, o r-base-dev y r-devel en Linux.

Una vez instalado devtools, podrá utilizar las funciones de utilidad para instalar otros paquetes. Las opciones son:

  • install_bioc() de Bioconductor,
  • install_bitbucket() de Bitbucket,
  • install_cran() de CRAN,
  • install_git() de un repositorio git,
  • install_github() de GitHub,
  • install_local() desde un archivo local,
  • install_svn() de un repositorio SVN,
  • install_url() desde una URL, y
  • install_version() de una versión específica de un paquete CRAN.

Por ejemplo, para instalar el paquete babynames desde su repositorio de Github, puedes utilizar:

devtools::install_github("hadley/babynames")

4. Cómo actualizar, eliminar y comprobar los paquetes de R instalados

Después de pasar más tiempo con R, es normal que utilice install.packages() unas cuantas veces a la semana o incluso al día, y dada la velocidad a la que se desarrollan los paquetes de R, es posible que más pronto que tarde necesite actualizar o sustituir sus queridos paquetes. En esta sección encontrará algunas funciones que pueden ayudarle a gestionar su colección.

  • Para comprobar qué paquetes están instalados en su ordenador, puede utilizar:
installed.packages()
  • Desinstalar un paquete es sencillo con la función remove.packages(), en su caso:
remove.packages("vioplot")
  • Puede comprobar qué paquetes necesitan una actualización con una llamada a la función:
old.packages()
  • Puede actualizar todos los paquetes mediante:
update.packages()
  • Pero para un paquete específico, sólo tiene que utilizar una vez más:
install.packages("vioplot")

5. ¿Existen interfaces de usuario para instalar paquetes de R?

Si prefiere una interfaz gráfica de usuario (es decir, señalar y hacer clic) para instalar paquetes, tanto RStudio como RGui las incluyen. En RStudio, lo encontrarás en Herramientas -> Instalar paquete, y allí te aparecerá una ventana emergente para que escribas el paquete que quieres instalar:

instalar paquetes

En RGui encontrará las utilidades en el menú Paquetes.

rgui

6. Cómo cargar paquetes

Una vez instalado un paquete, ya puede utilizar sus funciones. Si sólo necesita un uso esporádico de algunas funciones o datos dentro de un paquete, puede acceder a ellos con la notación packagename::functionname(). Por ejemplo, como ha instalado el paquete babynames, puede explorar uno de sus conjuntos de datos.

¿Recuerdas cómo ver un resumen de las funciones y datos que contiene un paquete?

Sí, el help(package = "babynames"), puede decirle esto.

Para acceder al conjunto de datos de nacimientos dentro del paquete babynames basta con teclear:

babynames::births
## # A tibble: 6 x 2
##    year  births
##   <int>   <int>
## 1  2009 4130665
## 2  2010 3999386
## 3  2011 3953590
## 4  2012 3952841
## 5  2013 3932181
## 6  2014 3988076

Si va a hacer un uso más intensivo del paquete, quizá merezca la pena cargarlo en memoria. La forma más sencilla de hacerlo es con el comando library().

Tenga en cuenta que la entrada de install.packages() es un vector de caracteres y requiere que el nombre vaya entre comillas, mientras que library() acepta tanto caracteres como nombres y permite escribir el nombre del paquete sin comillas.

Después de esto, ya no necesitará la notación package::function(), y podrá acceder directamente a sus funcionalidades como a cualquier otra función o dato base de R:

births
## # A tibble: 6 x 2
##    year  births
##   <int>   <int>
## 1  2009 4130665
## 2  2010 3999386
## 3  2011 3953590
## 4  2012 3952841
## 5  2013 3932181
## 6  2014 3988076

Es posible que haya oído hablar de la función require(): en efecto, es posible cargar un paquete con esta función, pero la diferencia es que no arrojará un error si el paquete no está instalado.

Así que utiliza esta función con cuidado.

Puede leer más sobre library() vs require() en R en otro artículo.

7. ¿Cuál es la diferencia entre un paquete y una biblioteca?

Hablando de la función library(), a veces hay confusión entre un paquete y una biblioteca, y se puede encontrar gente que llama paquetes a las "bibliotecas".

Por favor, no se confunda: library() es el comando utilizado para cargar un paquete, y se refiere al lugar donde se encuentra el paquete, normalmente una carpeta en su ordenador, mientras que un paquete es la colección de funciones agrupadas convenientemente.

Quizá pueda ayudar una cita de Hadley Wickham, científico jefe de datos en RStudio, e instructor del curso DataCamp "Writing functions in R":

Otro buen recordatorio de esta diferencia es ejecutar la función library() sin argumentos. Le proporcionará la lista de paquetes instalados en diferentes bibliotecas de su ordenador:

library()

8. Cómo cargar más de un paquete R a la vez

Aunque se puede simplemente introducir un vector de nombres en la función install.packages() para instalar un paquete, en el caso de la función library(), esto no es posible. Puede cargar un conjunto de paquetes de uno en uno o, si lo prefiere, utilizar una de las muchas soluciones desarrolladas por los usuarios de R.

Puedes encontrar ejemplos en esta discusión de Stack Overflow, este paquete de R y este repositorio de GitHub.

9. Cómo descargar un paquete de R

Para descargar un paquete determinado, puede utilizar la función detach(). El uso será:

detach("package:babynames", unload=TRUE)

10. ¿Cuáles son las fuentes alternativas de documentación y ayuda?

Como ha leído en las secciones anteriores, el archivo DESCRIPTION contiene información básica sobre un paquete, y aunque esa información es muy beneficiosa, no le ayudará a utilizar este paquete para su análisis. Entonces necesitará otras dos fuentes de documentación: los archivos de ayuda y las viñetas.

Archivos de ayuda

Como en R básico, los comandos ?() y help(), son la primera fuente de documentación cuando se empieza con un paquete. Probablemente recuerde que puede obtener una visión general del paquete mediante help(package = "packagename"), pero cada función puede explorarse individualmente mediante help("name of the function") o help(function, package = "package") si el paquete no se ha cargado, donde encontrará normalmente la descripción de la función y sus parámetros y un ejemplo de aplicación.

Por ejemplo, puede que recuerde que para obtener el archivo de ayuda del comando vioplot del paquete vioplot, puede escribir:

help(vioplot, package = "vioplot")

Consejo: también puede utilizar otra forma de ver lo que hay dentro de un paquete cargado. Utilice el comando ls() de este modo:

library(babynames)
ls("package:babynames")
## [1] "applicants" "babynames"  "births"     "lifetables"

Vignettes

Otra fuente de ayuda muy útil incluida en la mayoría de los paquetes son las viñetas, que son documentos donde los autores muestran algunas funcionalidades de su paquete de forma más detallada. Seguir viñetas es una forma estupenda de ensuciarse las manos con los usos habituales del paquete, por lo que es una manera perfecta de empezar a trabajar con él antes de hacer tu propio análisis.

Como recordará, la información de las viñetas contenidas en un paquete dado también está disponible en su archivo DOCUMENTATION localmente o en línea, pero también puede obtener la lista de viñetas incluidas en sus paquetes instalados con la función browseVignettes(), y para un paquete dado sólo tiene que incluir su nombre como parámetro: browseVignettes(package="packagename"). En ambos casos, se abrirá una ventana del navegador para que puedas explorar fácilmente y hacer clic en la viñeta preferida para abrirla.

Si prefiere quedarse en la línea de comandos, el comando vignette() le mostrará la lista de viñetas, vignette(package = "packagename"), las incluidas en un paquete determinado, y una vez localizada la que desea explorar, sólo tiene que utilizar el comando vignette("vignettename").

Por ejemplo, uno de los paquetes más populares para la visualización es ggplot2. Es probable que ya lo hayas instalado en tu ordenador, pero si no es así, esta es tu oportunidad de hacerlo y poner a prueba tus nuevas habilidades en install.packages().

Suponiendo que ya haya instalado ggplot2, puede comprobar qué viñetas se incluyen en él:

vignette(package = "ggplot2")

Hay dos viñetas disponibles para ggplot2, "ggplot2-specs" y "extending-ggplot2". Puedes comprobar el primero con:

vignette("ggplot2-specs")

En RStudio, se mostrará en la pestaña Ayuda de la derecha, mientras que en RGui o en la línea de comandos se abrirá una ventana del navegador con la viñeta.

Puede encontrar más opciones para obtener ayuda de R en el sitio de R-Project.

11. Cómo elegir los paquetes R adecuados

Llegados a este punto, deberías ser capaz de instalar y sacar el máximo partido a tus paquetes de R, pero aún queda una última pregunta en el aire: ¿dónde encontrar los paquetes que necesitas?

La forma típica de descubrir paquetes es simplemente aprendiendo R, en muchos tutoriales y cursos se suelen mencionar los paquetes más populares. Por ejemplo, en Cleaning Data in R se enseña todo sobre tidyr.

Para cada tema que le gustaría cubrir en R, probablemente haya un paquete interesante que pueda encontrar.

Pero, ¿y si tienes un problema concreto y no sabes por dónde empezar? Por ejemplo, como decía en la introducción de este post, ¿y si estás interesado en analizar algunos textos coreanos?

¿Y si quieres recoger datos meteorológicos? ¿O estimar la evapotranspiración?

Has revisado varios repositorios, y sí, sabes que podrías consultar la lista de paquetes de CRAN, pero con más de 10000 opciones, es muy fácil perderse.

Veamos algunas alternativas.

Vista de tareas de CRAN

Una alternativa puede ser navegar por categorías de paquetes de CRAN, gracias a las vistas de tareas de CRAN.  ¡Así es! CRAN, el repositorio oficial, también te da la opción de navegar por los paquetes. Las vistas de tareas son básicamente temas o categorías que agrupan paquetes en función de su funcionalidad.

Como puede ver a continuación, todos los paquetes que tengan que ver con la genética se clasificarán en la vista de tareas "Genética": 

Guía de paquetes R

Tomando como ejemplo los textos coreanos, puede encontrar fácilmente el paquete que necesita navegando hasta la vista de tareas de Procesamiento del Lenguaje Natural. Allí, puedes leer el texto para encontrar el paquete que puede manejar tus textos, o puedes hacer un simple CTRL+F y escribir la palabra clave que estás buscando. 

Tendrá el paquete adecuado en un abrir y cerrar de ojos, ¡garantizado! 

RDocumentación

Otra alternativa para encontrar paquetes puede ser RDocumentation, un agregador de documentación de ayuda para paquetes R de CRAN, BioConductor y GitHub, que te ofrece una caja de búsqueda preparada para tus peticiones directamente en la página principal.

Puede que aún no conozcas esta segunda alternativa, así que vamos a profundizar un poco más.

Empecemos con los textos coreanos, una característica interesante de RDocumentation es la búsqueda rápida, así que mientras escribes aparecen unos primeros resultados:

paquetes en R

Pero vayamos a la búsqueda completa: si introduces la palabra clave "coreano" y haces clic en "Buscar", obtendrás dos columnas con resultados: paquetes a la izquierda y funciones a la derecha.

Centrándonos en la columna de paquetes, para cada resultado se obtiene el nombre del paquete, con un enlace a información más detallada, el nombre del autor, también enlazable para ver otros paquetes del mismo autor, alguna descripción del paquete con la palabra buscada resaltada, e información sobre la popularidad del paquete.

resultados de la búsqueda

Hablando de popularidad, esto es relevante porque la búsqueda clasificará primero los paquetes más descargados de forma que mejore la relevancia de los resultados. Si quieres conocer más detalles sobre la implementación de búsqueda de RDocumentación, tienes un post muy detallado sobre puntuación y ranking

Por lo tanto, parece que el paquete KoNLP puede cubrir sus necesidades, después de hacer clic en su nombre, obtendrá la siguiente información:

  • Una cabecera con el nombre del paquete, el autor, la versión, la opción de seleccionar versiones anteriores, el número de descargas y un enlace a su página RDocumentación.
  • Una descripción del paquete.
  • La lista de funciones incluidas en el paquete, donde se puede hacer clic en cada una de ellas para obtener más detalles sobre el uso de la función. También dispone de un cuadro de búsqueda para acceder rápidamente a la función deseada.
  • Un gráfico con la evolución del número de descargas.
  • Los detalles del paquete con la información del archivo DESCRIPTION.
  • Y por último, un distintivo que puede incluirse en el archivo README del paquete con el enlace a la RDocumentación.

rdocumentation

  • Paquete RDocumentación. RDocumentation no es sólo un sitio web, sino también un paquete de R. Anula las funciones de ayuda para que pueda incorporar la potencia de RDocumentation a su flujo de trabajo. Una vez cargado este paquete, la función help() abrirá una ventana del navegador o su panel de ayuda de RStudio con acceso a RDocumentation.

Tener RDocumentation directamente en tu panel de R o RStudio te da algunas ventajas comparado con el uso del sitio web:

  • Compruebe la versión instalada del paquete. El panel de ayuda de un paquete le proporcionará la misma información que la página web (descargas, descripción, lista de funciones, detalles), además de información sobre la versión instalada del paquete.

Compruebe, por ejemplo, el paquete vioplot que ha instalado anteriormente:

install.packages("RDocumentation")
library(RDocumentation)
help(package = "vioplot")

vioplot

  • Posibilidad de instalar o actualizar un paquete directamente desde el panel de ayuda. Sé que ahora eres un experto en instalar paquetes, pero aquí tienes otra alternativa, hacerlo pulsando un botón en el panel de ayuda que proporciona RDocumentation.
remove.packages("vioplot")
help(package = "vioplot")

vioplot

  • Ejecutar y proponer ejemplos. El panel de ayuda de las funciones dentro de un paquete le ofrecerá la opción de volver a ejecutar los ejemplos con sólo pulsar un botón. También puedes proponer ejemplos que puedan incorporarse a la página de ayuda y ser probados por otros usuarios de R.
install.packages("vioplot")
help(vioplot)

ejemplos

Conclusiones

El post de hoy ha cubierto un amplio abanico de técnicas y funciones para sacar el máximo partido a R mediante el uso de paquetes. Como es habitual, hay más de una forma de realizar una tarea específica en R, y la gestión de paquetes no es una excepción.

Esperamos que haya aprendido las formas más utilizadas y algunas alternativas para descubrir, instalar, cargar, actualizar, obtener ayuda o eliminar un paquete de R.

Este post no cubría demasiados detalles sobre la estructura interna de los paquetes, o cómo crear los tuyos propios. Permanezca atento al blog y a los cursos de DataCamp para conocer estos y otros temas relacionados, pero mientras tanto, una buena referencia es el libro "Paquetes R" que puede encontrar aquí.

Si aún no lo has descubierto buscando en RDocumentación, con weatherData puedes extraer datos meteorológicos de Internet, y si te interesa la evapotranspiración, quizá deberías echar un vistazo a la página Evapotranspiration, watero SPEI paquetes.

Temas

Cursos R

Course

Introduction to R

4 hr
2.7M
Master the basics of data analysis in R, including vectors, lists, and data frames, and practice R with real data sets.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

blog

¿Qué es R? - Introducción al motor de cálculo estadístico

Aprenda todo lo que necesita saber sobre el lenguaje de programación R y descubra por qué es el lenguaje más utilizado en la ciencia de datos.
Summer Worsley's photo

Summer Worsley

18 min

R Project

blog

Las 8 mejores ideas de proyectos R para 2023

Descubra qué es R y todas las ventajas de utilizarlo, a la vez que ofrece ejemplos y nuevas ideas para un proyecto.
Elena Kosourova 's photo

Elena Kosourova

16 min

tutorial

Programación funcional frente a programación orientada a objetos en el análisis de datos

Explore dos de los paradigmas de programación más utilizados en la ciencia de datos: la programación orientada a objetos y la programación funcional.
Amberle McKee's photo

Amberle McKee

15 min

tutorial

K-Nearest Neighbors (KNN) Clasificación con R Tutorial

Aprenda a utilizar los paquetes 'class' y 'caret' de R, a ajustar los hiperparámetros y a evaluar el rendimiento del modelo.
Abid Ali Awan's photo

Abid Ali Awan

11 min

tutorial

Guía de expresiones regulares en R

Explore las expresiones regulares en R, por qué son importantes, las herramientas y funciones para trabajar con ellas, patrones regex comunes y cómo utilizarlos.
Elena Kosourova 's photo

Elena Kosourova

16 min

tutorial

Regresión logística en R Tutorial

Descubra todo sobre la regresión logística: en qué se diferencia de la regresión lineal, cómo ajustar y evaluar estos modelos en R con la función glm() y mucho más.
Vidhi Chugh's photo

Vidhi Chugh

14 min

See MoreSee More