# Paquetes de R

Los paquetes de R son una parte esencial del lenguaje de programación estadística R, ya que permiten a los usuarios ampliar su funcionalidad mediante la instalación de código, datos y documentación en un formato estandarizado. Estos paquetes, disponibles en repositorios centralizados como CRAN (Comprehensive R Archive Network), han sido fundamentales para la adopción masiva de R, especialmente en la ciencia de datos, debido a su facilidad de instalación y uso.
A diferencia de las bibliotecas de otros lenguajes de programación, los paquetes de R deben cumplir con especificaciones técnicas estrictas que garantizan su calidad y estabilidad. El manual Writing R Extensions establece una estructura estándar para organizar el código fuente, los datos, la documentación y los metadatos de cada paquete, lo que permite su correcta instalación y uso a través de las herramientas integradas en R. Además, los paquetes distribuidos en CRAN deben cumplir con requisitos adicionales para asegurar su usabilidad a largo plazo. Como señala John Chambers, aunque estas exigencias pueden ser un desafío para los desarrolladores, mejoran significativamente la experiencia de los usuarios finales, haciendo que los paquetes sean más confiables y accesibles.
La disponibilidad de estos paquetes, que contienen colecciones de funciones, datos y código para realizar tareas específicas sin necesidad de escribirlas desde cero, ha facilitado el uso de R en diversas áreas como el análisis estadístico, el modelado y la visualización de datos. Esto ha contribuido al crecimiento exponencial de la comunidad de R, que ha desarrollado miles de paquetes a lo largo de los años. A diciembre de 2023, más de 18,000 paquetes están disponibles en CRAN, consolidando a R como una de las plataformas más populares para la ciencia de datos y el análisis estadístico.

## Repositorios

La distribución y gestión de los paquetes de R se realiza a través de diferentes repositorios. El principal es CRAN (Comprehensive R Archive Network), una red de servidores que alberga la mayor parte de los paquetes disponibles. Los paquetes deben cumplir con criterios rigurosos para ser aceptados en CRAN, lo que garantiza su calidad y estabilidad. Otro repositorio destacado es Bioconductor, especializado en paquetes orientados a la bioinformática y la biología computacional. Bioconductor contiene herramientas para el análisis de datos genómicos, transcriptómicos, epigenómicos y otros datos biológicos a gran escala. También existen repositorios alternativos como GitHub, donde los desarrolladores pueden compartir paquetes en desarrollo o que aún no cumplen con los requisitos para ser publicados en CRAN o Bioconductor.

### Red integral de archivos R (CRAN)

La Red Integral de Archivos R (CRAN) es el repositorio de software central de R, respaldado por la R Fundation. Contiene un archivo de las versiones más recientes y anteriores de la distribución de R, documentación y paquetes aportados. Incluye paquetes fuente y binarios precompilados para Windows y macOS. Para noviembre de 2020, hay más de 16.000 paquetes disponibles. CRAN fue creado por Kurt Hornik y Friedrich Leisch en 1997, con el nombre en paralelo a otros sistemas de paquetes como CTAN de TeX (lanzado en 1992) y CPAN de Perl (lanzado en 1995). Para el 2021, aun es actualizado por Hornik y un equipo de voluntarios El sitio principal está ubicado en la Universidad de Economía y Negocios de Viena y está distribuido en servidores de todo el mundo.
La sección "Task Views" (lista de temas) en el sitio web de CRAN enumera una amplia gama de tareas (en campos como finanzas, genética, computación de alto rendimiento, aprendizaje automático, imágenes médicas, meta-análisis, ciencias sociales y estadísticas espaciales) para las que hay diferentes paquetes de R disponibles. Metacran ofrece otra forma de explorar los paquetes de CRAN, que también mantiene listas de paquetes destacados, los más descargados, aquellos que son tendencia o los que más se dependencia poseen.
La cantidad de paquetes CRAN ha crecido exponencialmente durante muchos años, y en el 2018, se realizaron en promedio 21 envíos de paquetes nuevos o actualizados cada día. Dado que cada envío es revisado manualmente por un pequeño equipo de mantenedores de CRAN, muchos de los cuales, según el desarrollador principal de R, Peter Dalgaard, "están acercándose a la edad de jubilación", existe la preocupación de que este sistema no sea sostenible en el largo plazo. El crecimiento de CRAN ha expuesto las limitaciones de su infraestructura de gestión de dependencias, en particular el hecho de que supone que las dependencias siempre se refieren a la última versión de un paquete, lo que significa que las nuevas versiones de los paquetes CRAN siempre deben ser compatibles con versiones anteriores, y que los paquetes CRAN no pueden tener dependencias que no estén en CRAN. Esto también ha suscitado preocupación por la disminución de la calidad de los paquetes.

### Gestor de paquetes MRAN y Posit

Microsoft R Application Network (MRAN) es un espejo de CRAN mantenido por Microsoft que se basa en la distribución de R de la empresa, Microsoft R Open (anteriormente Revolution R Open). También incluye un archivo de capturas diarias de CRAN, denominado "CRAN Time Machine", que permite a los usuarios de MRAN eludir las limitaciones por dependencia a versiones particulars de CRAN instalando un conjunto fijo de versiones de paquetes R a través de un punto de control. En enero de 2023, Microsoft anunció que MRAN se retiraría y que los sitios web y repositorios asociados dejarían de estar disponibles en julio de 2023.
El Posit Package Manager (anteriormente RStudio Package Manager) es una herramienta similar producida por los desarrolladores de RStudio que, además de capturas de CRAN, incluye un archivo de paquetes R de Bioconductor y paquetes Python del Python Package Index. También distribuye paquetes binarios precompilados para Linux (solo los binarios de Windows y macOS están incluidos en CRAN).

### Otros repositorios

El proyecto Bioconductor proporciona paquetes R para el análisis de datos genómicos. Esto incluye herramientas de análisis y manejo de datos orientados a objetos para datos de Affymetrix, microarrays de ADNc y métodos de secuenciación de alto rendimiento de siguiente generación.
R-Forge, es una plataforma central para el desarrollo colaborativo de paquetes R, software relacionado con R y proyectos. R-Forge también alberga muchos paquetes beta no publicados y versiones de desarrollo de paquetes CRAN.

## Paquetes base y recomendados

R se distribuye con quince "paquetes base": base, compilador, conjuntos de datos, grDevices, gráficos, cuadrícula, métodos, paralelo, splines, estadísticas, stats4, tcltk, herramientas, traducciones y utilidades.
Además, hay quince "paquetes recomendados" de CRAN que se incluyen con las distribuciones binarias de R: KernSmooth, MASS, Matrix, boot, class, cluster, codetools, foreign, lattice, mgcv, nlme, nnet, rpart, strategic y survival.

### Paquetes básicos y comunes en biología

Dentro del campo de la biología, R se ha convertido en una herramienta esencial, y existen numerosos paquetes que facilitan el análisis de datos biológicos. Algunos de los paquetes más comunes y ampliamente utilizados incluyen:
* Bioconductor: Aunque no es un paquete en sí, Bioconductor ofrece más de 2,000 paquetes especializados en la bioinformática. Entre estos se destacan herramientas como edgeR y DESeq2 para el análisis diferencial de expresión de datos de ARN-seq, así como GenomicRanges para el manejo de datos genómicos.
* edgeR: Es uno de los paquetes más usados para el análisis de datos de expresión génica. Se basa en modelos lineales generalizados para identificar genes diferencialmente expresados en estudios de ARN-seq.
* DESeq2: Este paquete es similar a edgeR, pero utiliza un enfoque diferente basado en la estimación de la varianza para determinar los cambios en los niveles de expresión genética. Es ampliamente utilizado en estudios de transcriptómica y análisis de datos de alto rendimiento.
* ggplot2: Aunque no es específico de la biología, ggplot2 es un paquete clave para la visualización de datos en R y es utilizado frecuentemente en estudios biológicos para generar gráficos complejos y personalizados de datos de expresión, análisis de variabilidad genética, entre otros.
* phyloseq: Un paquete especializado en análisis de datos microbiológicos y filogenéticos, que permite a los usuarios realizar análisis complejos de diversidad microbiana, estudios de comunidades microbianas y análisis filogenéticos a partir de datos de secuenciación.

## Otros paquetes

Un grupo de paquetes llamado tidyverse, que puede considerarse un "dialecto del lenguaje R", es cada vez más popular en el ecosistema R. Al 13 de junio de 2020, Metacran incluyó 7 de los 8 paquetes principales de tidyverse en la lista de paquetes R más descargados. El grupo de paquetes se esfuerza por proporcionar una colección cohesiva de funciones para abordar tareas comunes de ciencia de datos, incluida la importación, limpieza, transformación y visualización de datos (especialmente con el paquete ggplot2 ).
Los paquetes de infraestructura R respaldan la codificación y el desarrollo de paquetes R y, al 4 de mayo de 2021, Metacran enumera 16 de estos paquetes entre los 25 paquetes más descargados.