R paquetes son extensiones al lenguaje de programación estadística R . Los paquetes de R contienen código, datos y documentación en un formato de recopilación estandarizado que los usuarios de R pueden instalar, normalmente a través de un repositorio de software centralizado como CRAN (la Red Integral de Archivos de R). [1] [2] La gran cantidad de paquetes disponibles para R, y la facilidad de instalarlos y usarlos, se ha citado como un factor importante para impulsar la adopción generalizada del lenguaje en la ciencia de datos . [3] [4] [5] [6]
En comparación con las bibliotecas de otros lenguajes de programación, los paquetes R deben ajustarse a una especificación relativamente estricta. [3] El manual Writing R Extensions [7] especifica una estructura de directorio estándar para el código fuente, los datos, la documentación y los metadatos de paquetes de R, lo que permite instalarlos y cargarlos mediante las herramientas de gestión de paquetes integradas de R. [3] Los paquetes distribuidos en CRAN deben cumplir con estándares adicionales. [3] [8] Según John Chambers , aunque estos requisitos "imponen demandas considerables" a los desarrolladores de paquetes, mejoran la usabilidady estabilidad a largo plazo de los paquetes para los usuarios finales. [3]
Repositorios
Red integral de archivos R (CRAN)
Comprehensive R Archive Network (CRAN) es el repositorio de software central de R , respaldado por R Foundation. [9] Contiene un archivo de las versiones anteriores y más recientes de la distribución de R, la documentación y los paquetes de R contribuidos. [10] Incluye tanto paquetes fuente como binarios precompilados para Windows y macOS . [11] A noviembre de 2020[actualizar], hay más de 16.000 paquetes disponibles. [12] CRAN fue creado por Kurt Hornik y Friedrich Leisch en 1997, [13] [14] con el nombre paralela a otros sistemas de embalaje temprano como TeX 's CTAN (lanzado 1992) y Perl ' s CPAN (lanzado 1995). [15] A partir de 2021[actualizar], todavía lo mantienen Hornik y un equipo de voluntarios. [9] El sitio principal está ubicado en la Universidad de Economía y Negocios de Viena y está reflejado en servidores de todo el mundo. [10]
La página "Vistas de tareas" (lista de temas) en el sitio web de CRAN [16] enumera una amplia gama de tareas (en campos como Finanzas, Genética, Computación de alto rendimiento, Aprendizaje automático, Imágenes médicas, Ciencias sociales y Estadística espacial) para las cuales Los paquetes R están disponibles. Metacran [17] proporciona otra forma de navegar por los paquetes CRAN, [17] que también mantiene listas de paquetes destacados, más descargados, de tendencias o más dependientes.
El número de paquetes CRAN ha crecido exponencialmente durante muchos años, [18] y a partir de 2018[actualizar]Cada día se realizó un promedio de 21 presentaciones de paquetes nuevos o actualizados. [6] 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 a largo plazo. . [6] El crecimiento de CRAN ha expuesto las limitaciones de su infraestructura de gestión de dependencias , en particular el hecho de que asume que las dependencias siempre se refieren a la última versión de un paquete, lo que significa que las nuevas versiones de los paquetes de CRAN siempre deben ser compatibles con versiones anteriores , [19] y que los paquetes CRAN no pueden tener dependencias que no estén en CRAN. [20] También ha suscitado preocupaciones sobre la disminución de la calidad de los envases. [21]
Administrador de paquetes MRAN y RStudio
Microsoft R Application Network (MRAN) es un espejo de CRAN mantenido por Microsoft que se basa en la distribución descendente de la empresa de R, Microsoft R Open (anteriormente Revolution R Open). [22] También incluye un archivo de instantáneas CRAN diarias, con la marca "CRAN Time Machine", que permite a los usuarios de MRAN eludir las limitaciones de versiones de dependencia de CRAN instalando un conjunto fijo de versiones de paquetes R a través del punto de control del paquete. [23] [24]
Rstudio Package Manager es una herramienta similar producido por rstudio , que además de instantáneas CRAN incluye un archivo de paquetes de Bioconductor R y Python paquetes del índice de paquetes de Python . [25] También distribuye paquetes binarios precompilados para Linux (solo se incluyen binarios de Windows y macOS en CRAN). [26]
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 orientadas a objetos para datos de Affymetrix , microarrays de ADNc y métodos de secuenciación de alto rendimiento de próxima generación . [27]
R-Forge, [28] es una plataforma central para el desarrollo colaborativo de paquetes R, software relacionado con R y proyectos. R-Forge también aloja muchos paquetes beta no publicados y versiones de desarrollo de paquetes CRAN.
Paquetes básicos y recomendados
R se distribuye con catorce "paquetes base": base, compilador, conjuntos de datos, grDevices, gráficos, cuadrícula, métodos, paralelo, splines, stats, stats4, tcltk, herramientas y utilidades. [29]
Además, hay quince "paquetes recomendados" de CRAN que se incluyen con distribuciones binarias de R: KernSmooth, MASS, Matrix, boot, class, cluster, codetools, Foreign, lattice, mgcv, nlme, nnet, rpart, espacial y supervivencia. [29]
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. A partir del 2020-06-13, Metacran [17] enumeró 7 de los 8 paquetes principales de Tidyverse en la lista de la mayoría de los paquetes R de descarga. El grupo de paquetes se esfuerza por proporcionar una colección cohesiva de funciones para lidiar con 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] admiten la codificación y el desarrollo de paquetes R y, a partir de 2021-05-04, Metacran [17] enumera 16 de estos paquetes entre los 25 paquetes más descargados.
Otros paquetes de R incluyen datasets.load, escrito por Bastiaan Quast , que agrega interfaces gráficas y de línea de comandos para cargar conjuntos de datos desde paquetes instalados. [31]
Ver también
- Tidyverse
- ggplot2
- tejedor
Referencias
- ↑ Hornik, Kurt (20 de febrero de 2020). "Preguntas frecuentes sobre R" . La Red Archivo R Integral . 7.29: ¿Cuál es la diferencia entre paquete y biblioteca? . Consultado el 2 de noviembre de 2020 .Mantenimiento de CS1: ubicación ( enlace )
- ^ Wickham, Hadley; Bryan, Jennifer. "Introducción". Paquetes R (2ª ed.).
- ^ a b c d e Cámaras, John M. (2020). "S, R y Data Science" . The R Journal . 12 (1): 462–476. doi : 10.32614 / RJ-2020-028 . ISSN 2073-4859 .
- ^ Vance, Ashlee (6 de enero de 2009). "Analistas de datos cautivados por el poder de R" . New York Times .
- ^ Tippmann, Sylvia (29 de diciembre de 2014). "Herramientas de programación: aventuras con R" . Nature News . 517 (7532): 109-110. doi : 10.1038 / 517109a .
- ^ a b c Thieme, Nick (2018). "Generación R" . Importancia . 15 (4): 14-19. doi : 10.1111 / j.1740-9713.2018.01169.x . ISSN 1740-9713 .
- ^ Equipo R Core. "Escritura de extensiones R" . La Red Archivo R Integral . Consultado el 2 de noviembre de 2020 .Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ Mantenedores de repositorios CRAN. "Política de repositorio de CRAN" . La Red Archivo R Integral . Consultado el 2 de noviembre de 2020 .Mantenimiento de CS1: utiliza el parámetro de autores ( enlace )
- ^ a b Mantenedores de repositorios CRAN. "Política de repositorio de CRAN" . La Red Archivo R Integral . Proyecto R . Consultado el 20 de noviembre de 2020 .
- ^ a b Hornik, Kurt (20 de febrero de 2020). "Preguntas frecuentes sobre R" . La Red Archivo R Integral . 2.1: ¿Cuál es CRAN ?: R Proyecto . Consultado el 20 de noviembre de 2020 .Mantenimiento de CS1: ubicación ( enlace )
- ^ Mantenedores de repositorios CRAN. "La red integral de archivos de R" . Proyecto R . Consultado el 20 de noviembre de 2020 .
- ^ Mantenedores de repositorios CRAN. "CRAN - Paquetes contribuidos" . La Red Archivo R Integral . CRAN . Consultado el 20 de noviembre de 2020 .
- ^ Hornik, Kurt (23 de abril de 1997). "ANUNCIO: CRAN" . r -nounce (lista de correo) . Consultado el 20 de noviembre de 2020 .
- ^ Thieme, Nick (2018). "Generación R" . Importancia . 15 (4): 14-19. doi : 10.1111 / j.1740-9713.2018.01169.x . ISSN 1740-9713 .
- ^ Fitzgerald, Brian (9 de febrero de 2016). "Un estudio de los sistemas de paquetes de lenguaje de programación" . Algunas cosas son obvias . Consultado el 4 de mayo de 2021 .
- ^ "Vistas de tareas CRAN" . cran.r-project.org . Consultado el 16 de septiembre de 2018 .
- ^ a b c "Metacran" .
- ^ 21 de abril, Matt Asay en Open Source en; 2016; Pst, 12:32 p. M. "El crecimiento exponencial de la comunidad de código abierto de R amenaza a los competidores comerciales" . TechRepublic . Consultado el 2 de noviembre de 2020 .CS1 maint: nombres numéricos: lista de autores ( enlace )
- ^ Ooms, Jeroen (2013). "Posibles direcciones para mejorar el control de versiones de dependencias en R" . The R Journal . 5 (1): 197–206. doi : 10.32614 / RJ-2013-019 . ISSN 2073-4859 . S2CID 6791850 .
- ^ Decan, A .; Mens, T .; Claes, M .; Grosjean, P. (2016). "Cuando GitHub se encuentra con CRAN: un análisis de los problemas de dependencia del paquete entre repositorios" . 2016 IEEE 23a Conferencia Internacional sobre Análisis, Evolución y Reingeniería de Software (SANER) . 1 : 493–504. doi : 10.1109 / SANER.2016.12 . ISBN 978-1-5090-1855-0. S2CID 16751624 .
- ^ Hornik, Kurt (2012). "¿Hay demasiados paquetes R?" . Revista austriaca de estadística . 41 (1): 59–66–59–66. doi : 10.17713 / ajs.v41i1.188 . ISSN 1026-597X .
- ^ "Bienvenidos a MRAN" . Microsoft Application Network R . Microsoft . Consultado el 4 de mayo de 2021 .
- ^ "Reproducibilidad: uso de instantáneas de repositorio CRAN fijo" . Microsoft Application Network R . Microsoft . Consultado el 4 de mayo de 2021 .
- ^ Smith, David (22 de mayo de 2019). "Instantáneas de MRAN, y tú" . Revoluciones . Revolution Analytics . Consultado el 4 de mayo de 2021 .
- ^ Lopp, Sean (7 de diciembre de 2020). "RStudio Package Manager 1.2.0 - Bioconductor y PyPI" . Blog de RStudio . RStudio . Consultado el 4 de mayo de 2021 .
- ^ Lopp, Sean (1 de julio de 2020). "Anuncio de Public Package Manager y v1.1.6" . Blog de RStudio . RStudio . Consultado el 4 de mayo de 2021 .
- ^ Huber, W; Carey, VJ; Caballero, R; Anders, S; Carlson, M; Carvalho, BS; Bravo, HC; Davis, S; Gatto, L; Girke, T; Gottardo, R; Hahne, F; Hansen, KD; Irizarry, RA; Lawrence, M; Amor mi; MacDonald, J; Obenchain, V; Oleś, AK; Pagès, H; Reyes, A; Shannon, P; Smyth, GK; Tenenbaum, D; Waldron, L; Morgan, M (2015). "Orquestando análisis genómico de alto rendimiento con Bioconductor" . Métodos de la naturaleza . Nature Publishing Group . 12 (2): 115-121. doi : 10.1038 / nmeth.3252 . PMC 4509590 . PMID 25633503 .
- ^ "R-Forge: Bienvenido" . Consultado el 16 de septiembre de 2018 .
- ^ a b Hornik, Kurt (20 de febrero de 2020). "Preguntas frecuentes sobre R" . La Red Archivo R Integral . 5.1: ¿Qué paquetes complementarios existen para R? . Consultado el 2 de noviembre de 2020 .Mantenimiento de CS1: ubicación ( enlace )
- ^ "Infraestructura R" .
- ^ Laux, Michael (5 de enero de 2017). "Paquetes R que merecen una mirada" . Análisis de datos & R . Archivado desde el original el 3 de enero de 2020 . Consultado el 1 de mayo de 2020 .[ fuente autoeditada ]
Otras lecturas
- Claes, M .; Mens, T .; Grosjean, P. (2014). "Sobre la mantenibilidad de los paquetes CRAN" . Semana de la evolución del software 2014 - Conferencia IEEE sobre mantenimiento, reingeniería e ingeniería inversa de software (CSMR-WCRE) : 308–312. doi : 10.1109 / CSMR-WCRE.2014.6747183 . ISBN 978-1-4799-3752-3. S2CID 17927576 .
- Decan, Alexandre; Hombres, Tom; Claes, Maelick; Grosjean, Philippe (7 de septiembre de 2015). "Sobre el desarrollo y distribución de paquetes R: un análisis empírico del ecosistema R" . Actas de los talleres de la Conferencia Europea de Arquitectura de Software 2015 . ECSAW '15. Dubrovnik, Cavtat, Croacia: Asociación de Maquinaria Informática: 1–6. doi : 10.1145 / 2797433.2797476 . ISBN 978-1-4503-3393-1. S2CID 1680582 .
- Fox, John (2009). "Aspectos de la Organización Social y Trayectoria del Proyecto R" . The R Journal . 1 (2): 5–13. doi : 10.32614 / RJ-2009-014 . ISSN 2073-4859 .
- Fox, John; Leanage, Allison (12 de septiembre de 2016). "R y la revista de software estadístico" . Revista de software estadístico . 73 (1): 1–13. doi : 10.18637 / jss.v073.i02 . ISSN 1548-7660 .
- Plakidas, Konstantinos; Schall, Daniel; Zdun, Uwe (2017). "Evolución del ecosistema de software R: métricas, relaciones y su impacto en las cualidades" . Revista de sistemas y software . 132 : 119-146. doi : 10.1016 / j.jss.2017.06.095 . ISSN 0164-1212 .
enlaces externos
- La Red Integral de Archivos R (CRAN)
- METACRAN , un directorio de paquetes R
- Vistas de tareas CRAN , listado de paquetes CRAN por temas