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),[1][2] 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[2] 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.[3] Además, los paquetes distribuidos en CRAN deben cumplir con requisitos adicionales para asegurar su usabilidad a largo plazo.[4][3] 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.[2]
Repositorios
editarLa 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.[2] 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.[5] 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)
editarLa Red Integral de Archivos R (CRAN) es el repositorio de software central de R, respaldado por la R Fundation.[4] Contiene un archivo de las versiones más recientes y anteriores de la distribución de R, documentación y paquetes aportados.[1] Incluye paquetes fuente y binarios precompilados para Windows y macOS.[6] Para noviembre de 2020, hay más de 16.000 paquetes disponibles.[7] CRAN fue creado por Kurt Hornik y Friedrich Leisch en 1997,[8] con el nombre en paralelo a otros sistemas de paquetes como CTAN de TeX (lanzado en 1992) y CPAN de Perl (lanzado en 1995).[9] Para el 2021, aun es actualizado por Hornik y un equipo de voluntarios [4] El sitio principal está ubicado en la Universidad de Economía y Negocios de Viena y está distribuido en servidores de todo el mundo.[1]
La sección "Task Views" (lista de temas) en el sitio web de CRAN [10] 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 [11] 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,[12] y en el 2018, se realizaron en promedio 21 envíos de paquetes nuevos o actualizados cada día.[13] 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.[13] 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,[14] y que los paquetes CRAN no pueden tener dependencias que no estén en CRAN.[15] Esto también ha suscitado preocupación por la disminución de la calidad de los paquetes.[16]
Gestor de paquetes MRAN y Posit
editarMicrosoft 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).[17] 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.[18][19] 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.[20]
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.[21] También distribuye paquetes binarios precompilados para Linux (solo los binarios de Windows y macOS están incluidos en CRAN).[22]
Otros repositorios
editarEl 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.[23]
R-Forge,[24] 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
editarR 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.[25]
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.[25]
Paquetes básicos y comunes en biología
editarDentro 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.[5]
- 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.[26]
- 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.[27]
- 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.[28]
- 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.[29]
Otros paquetes
editarUn 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 [11] 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 [30] respaldan la codificación y el desarrollo de paquetes R y, al 4 de mayo de 2021, Metacran [11] enumera 16 de estos paquetes entre los 25 paquetes más descargados.
Referencias
editar- ↑ a b c Hornik, Kurt (20 de febrero de 2020). «Frequently Asked Questions on R». The Comprehensive R Archive Network. 2.1: What is CRAN?: R Project. Archivado desde el original el 9 de julio de 2011. Consultado el 20 de noviembre de 2020.
- ↑ a b c d «Writing R Extensions». web.archive.org. 12 de noviembre de 2020. Archivado desde el original el 12 de noviembre de 2020. Consultado el 13 de septiembre de 2024.
- ↑ a b Chambers, John M. (2020). «S, R, and Data Science». The R Journal (en inglés) 12 (1): 462-476. ISSN 2073-4859. Consultado el 13 de septiembre de 2024.
- ↑ a b c CRAN Repository Maintainers. «CRAN Repository Policy». The Comprehensive R Archive Network. R Project. Archivado desde el original el 11 de noviembre de 2020. Consultado el 20 de noviembre de 2020.
- ↑ a b «Bioconductor - About». www.bioconductor.org. Consultado el 13 de septiembre de 2024.
- ↑ CRAN Repository Maintainers. «The Comprehensive R Archive Network». R Project. Archivado desde el original el 23 de enero de 2019. Consultado el 20 de noviembre de 2020.
- ↑ CRAN Repository Maintainers. «CRAN - Contributed Packages». The Comprehensive R Archive Network. CRAN. Archivado desde el original el 24 de noviembre de 2020. Consultado el 20 de noviembre de 2020.
- ↑ Thieme, Nick (2018). «R generation». Significance (en inglés) 15 (4): 14-19. ISSN 1740-9713. doi:10.1111/j.1740-9713.2018.01169.x.
- ↑ Fitzgerald, Brian (9 de febrero de 2016). «A Survey of Programming Language Package Systems». Some Things Are Obvious. Archivado desde el original el 9 de noviembre de 2020. Consultado el 4 de mayo de 2021.
- ↑ «CRAN Task Views». cran.r-project.org. Archivado desde el original el 9 de julio de 2011. Consultado el 16 de septiembre de 2018.
- ↑ a b c «Metacran». Archivado desde el original el 20 de abril de 2021. Consultado el 4 de mayo de 2021.
- ↑ Asay, Matt (21 de abril de 2016). «Exponential growth of R's open source community threatens commercial competitors». TechRepublic (en inglés). Archivado desde el original el 26 de octubre de 2020. Consultado el 2 de noviembre de 2020.
- ↑ a b Thieme, Nick (2018). «R generation». Significance (en inglés) 15 (4): 14-19. ISSN 1740-9713. doi:10.1111/j.1740-9713.2018.01169.x.
- ↑ Ooms, Jeroen (2013). «Possible Directions for Improving Dependency Versioning in R». The R Journal (en inglés) 5 (1): 197-206. ISSN 2073-4859. arXiv:1303.2140. doi:10.32614/RJ-2013-019. Archivado desde el original el 19 de septiembre de 2020. Consultado el 2 de noviembre de 2020.
- ↑ Decan, A.; Mens, T.; Claes, M.; Grosjean, P. (2016). «When GitHub Meets CRAN: An Analysis of Inter-Repository Package Dependency Problems». 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER) 1. pp. 493-504. ISBN 978-1-5090-1855-0. doi:10.1109/SANER.2016.12. Consultado el 12 de mayo de 2021.
- ↑ Hornik, Kurt (2012). «Are There Too Many R Packages?». Austrian Journal of Statistics (en inglés) 41 (1): 59-66-59-66. ISSN 1026-597X. doi:10.17713/ajs.v41i1.188. Archivado desde el original el 26 de noviembre de 2020. Consultado el 2 de noviembre de 2020.
- ↑ «Welcome to MRAN». Microsoft R Application Network. Microsoft. Archivado desde el original el 4 de mayo de 2021. Consultado el 4 de mayo de 2021.
- ↑ «Reproducibility: Using Fixed CRAN Repository Snapshots». Microsoft R Application Network. Microsoft. Archivado desde el original el 2 de mayo de 2021. Consultado el 4 de mayo de 2021.
- ↑ Smith, David (22 de mayo de 2019). «MRAN snapshots, and you». Revolutions. Revolution Analytics. Archivado desde el original el 4 de mayo de 2021. Consultado el 4 de mayo de 2021.
- ↑ «Microsoft R Application Network retirement». techcommunity.microsoft.com (en inglés). Consultado el 15 de noviembre de 2023.
- ↑ Lopp, Sean (7 de diciembre de 2020). «RStudio Package Manager 1.2.0 - Bioconductor & PyPI». RStudio Blog (en inglés estadounidense). RStudio. Archivado desde el original el 4 de mayo de 2021. Consultado el 4 de mayo de 2021.
- ↑ Lopp, Sean (1 de julio de 2020). «Announcing Public Package Manager and v1.1.6». RStudio Blog (en inglés estadounidense). RStudio. Archivado desde el original el 4 de mayo de 2021. Consultado el 4 de mayo de 2021.
- ↑ Huber, W; Carey, VJ; Gentleman, R; Anders, S; Carlson, M; Carvalho, BS; Bravo, HC; Davis, S et al. (2015). «Orchestrating high-throughput genomic analysis with Bioconductor». Nature Methods (Nature Publishing Group) 12 (2): 115-121. PMC 4509590. PMID 25633503. doi:10.1038/nmeth.3252.
- ↑ «R-Forge: Welcome». Archivado desde el original el 14 de septiembre de 2018. Consultado el 16 de septiembre de 2018.
- ↑ a b Hornik, Kurt (20 de febrero de 2020). «Frequently Asked Questions on R». The Comprehensive R Archive Network. 5.1: Which add-on packages exist for R?. Archivado desde el original el 9 de julio de 2011. Consultado el 2 de noviembre de 2020.
- ↑ Robinson, Mark D.; McCarthy, Davis J.; Smyth, Gordon K. (1 de enero de 2010). «edgeR : a Bioconductor package for differential expression analysis of digital gene expression data». Bioinformatics (en inglés) 26 (1): 139-140. ISSN 1367-4811. PMC 2796818. PMID 19910308. doi:10.1093/bioinformatics/btp616. Consultado el 13 de septiembre de 2024.
- ↑ Love, Michael I; Huber, Wolfgang; Anders, Simon (2014-12). «Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2». Genome Biology (en inglés) 15 (12). ISSN 1474-760X. PMC 4302049. PMID 25516281. doi:10.1186/s13059-014-0550-8. Consultado el 13 de septiembre de 2024.
- ↑ «Create Elegant Data Visualisations Using the Grammar of Graphics». ggplot2.tidyverse.org (en inglés). Consultado el 13 de septiembre de 2024.
- ↑ McMurdie, Paul J.; Holmes, Susan (22 de abril de 2013). «phyloseq: An R Package for Reproducible Interactive Analysis and Graphics of Microbiome Census Data». En Watson, Michael, ed. PLoS ONE (en inglés) 8 (4): e61217. ISSN 1932-6203. PMC 3632530. PMID 23630581. doi:10.1371/journal.pone.0061217. Consultado el 13 de septiembre de 2024.
- ↑ «R infrastructure». GitHub. Archivado desde el original el 19 de mayo de 2021. Consultado el 4 de mayo de 2021.
Enlaces externos
editar- La red integral de archivos R (CRAN)
- METACRAN, un directorio de paquetes R
- Vistas de tareas de CRAN, listado de paquetes de CRAN por temas