Pachetele limbajului de programare R
Pachetele din R sunt extensii ale limbajului de programare statistică R. Acestea conțin cod, date și documentație într-un format standardizat care poate fi instalat de utilizatorii R, de obicei printr-un depozit de software centralizat, cum ar fi CRAN (Comprensive R Archive Network).[1][2] Numărul mare de pachete disponibile pentru R și ușurința instalării și utilizării acestora au fost citate ca un factor major care conduce la adoptarea pe scară largă a limbajului în știința datelor.[3][4][5][6]
În comparație cu bibliotecile din alt limbaj de programare, pachetele din R trebuie să respecte o specificație relativ strictă.[3] Manualul Writing R Extensions[7] specifică o structură de registre standardizată pentru codul sursă, date, documentație și metadatele pachetelor din R, astfel ele pot fi instalate și încărcate folosind instrumentele de gestionare a pachetelor încorporate în R.[3] Pachetele distribuite pe CRAN trebuie să îndeplinească standarde suplimentare.[3][8] Potrivit lui John Chambers(d), în timp ce aceste cerințe „impun cerințe considerabile” dezvoltatorilor de pachete, ele îmbunătățesc capacitatea de utilizare și stabilitatea pe termen lung a pachetelor pentru utilizatorii finali.[3]
Depozitele
modificareComprehensive R Archive Network (CRAN)
modificareComprehensive R Archive Network (CRAN) este depozitul de software principal al R, susținut de Fundația R.[9] Conține o arhivă a celor mai recente și anterioare versiuni ale R, a documentației și a pachetelor publicate.[10] Include atât pachete sursă, cât și executabile precompilate pentru Windows și macOS.[11] La data de Martie 2023[update] </link></link>, erau disponibile peste 19.000 de pachete.[12] CRAN a fost creat de Kurt Hornik și Friedrich Leisch în 1997,[13][14] cu numele în paralel cu alte sisteme de depozitare timpurii, cum ar fi CTAN(d) de la TeX (lansat în 1992) și CPAN(d) de la Perl (lansat în 1995).[15] În prezent, este încă întreținut de Hornik și o echipă de voluntari.[9] Site-ul principal menținut de Universitatea de Economie și Afaceri din Viena și este reflectat pe servere din întreaga lume.[10]
Pagina „Vizualizări de sarcini” (lista de subiecte) de pe site-ul web CRAN[16] enumeră o gamă largă de sarcini (în domenii precum finanțe, genetică, calcul de înaltă performanță, învățare automată, imagistica medicală, meta-analiză, științe sociale și statistici spațiale) pentru care sunt disponibile pachete în R. O altă modalitate de a răsfoi pachetele CRAN este oferită de Metacran,[17] care menține, de asemenea, liste cu pachetele prezentate, cele mai descărcate, în tendințe sau cele mai dependente de alte pachete.
Numărul de pachete CRAN a crescut exponențial în ultimii ani.[18] Deoarece fiecare depunere este revizuită manual de o echipă mică de menținători CRAN, mulți dintre care, potrivit dezvoltatorului principal R, Peter Dalgaard(d), „se apropie de vârsta de pensionare”, există îngrijorarea că acest sistem nu este sustenabil pe termen lung.[6] Creșterea CRAN a expus limitări ale infrastructurii sale de gestionare a dependențelor, în special faptul că presupune că dependențele se raportează întotdeauna la cea mai recentă versiune a unui pachet, ceea ce înseamnă că noile versiuni ale pachetelor CRAN trebuie să fie întotdeauna compatibile cu versiunea inversă[19] și că pachetele CRAN nu pot avea dependențe care nu sunt pe CRAN.[20] De asemenea, a dus la îngrijorări cu privire la scăderea calității pachetelor.[21]
MRAN și Manager de pachete Posit
modificareMicrosoft R Application Network (MRAN) este un omolog CRAN întreținut de Microsoft, care se bazează pe distribuția în aval(d) a companiei a R, Microsoft R Open(d) (în trecut, Revolution R Open).[22] Include, de asemenea, o arhivă de instantanee(d) CRAN zilnice, denumită „CRAN Time Machine (CRAN Mașina timpului)”, care permite utilizatorilor MRAN să ocolească limitările de versiuni ale dependențelor CRAN prin instalarea unui set fix de versiuni de pachete din R prin punctul de control al pachetului.[23][24] În ianuarie 2023, Microsoft a anunțat că MRAN este retras și site-urile și depozitele asociate au devenit indisponibile în iulie 2023.[25]
Managerul de pachete Posit (în trecut, RStudio Package Manager) este un instrument similar produs de dezvoltatorii RStudio(d) care, pe lângă instantaneele(d) CRAN, include o arhivă de pachete R din Bioconductor și pachete Python din Indexul pachetelor Python.[26] De asemenea, distribuie pachete executabile precompilate pentru Linux (numai executabilele Windows și macOS sunt incluse pe CRAN).[27]
Alte depozite
modificareProiectul Bioconductor oferă pachete R pentru analiza datelor genomice. Aceasta include instrumente de manipulare și analiză a datelor orientate pe obiecte pentru datele de la Affymetrix(d), microarray ADNc și metode de secvențiere cu randament ridicat de ultimă generație.[28]
De exemplu pachetul BiocManager este un instrument convenabil pentru a instala și actualiza pachetele Bioconductor.
R-Forge,[29] este o platformă centrală pentru dezvoltarea colaborativă a pachetelor pentru R, a software-ului legat de R și a proiectelor. R-Forge găzduiește, de asemenea, multe pachete beta nepublicate și versiuni de dezvoltare ale pachetelor CRAN.
Pachete de bază și recomandate
modificareR este distribuit cu cincisprezece „pachete de bază”: base, compiler, datasets, grDevices, graphics, grid, methods, parallel, splines, stats, stats4, tcltk, tools, translations și utils.[30]
În plus, există cincisprezece „pachete recomandate” de CRAN care sunt incluse cu distribuțiile binare ale lui R: KernSmooth, MASS, Matrix, boot, class, cluster, codetools, foreign, lattice, mgcv, nlme, nnet, rpart, spatial și survival.[30]
Alte pachete
modificareUn grup de pachete numit Tidyverse(d), care poate fi considerat un „dialect al limbii R”, este din ce în ce mai popular în ecosistemul R. Grupul de pachete se străduiește să ofere o colecție coerentă de funcții pentru a face față sarcinilor comune ale științei datelor, inclusiv importarea, curățarea, transformarea și vizualizarea datelor (în special cu pachetul Ggplot2(d) ).
- ape - analize filogenetice și evolutive
- ade4 - analiza multivariată a datelor și afișare grafică
- adegenet - explorarea datelor genetice și genomice
- Geneland - simularee stocastică și inferența MCMC a structurii din datele genetice
- kdetrees - metoda non-parametrică de identificare a potențialelor observații periferice în o colecție de arbori filogenetici
- phangorn - analize filogenetice
- phyloch -interfețe și instrumente grafice pentru date filogenetice
- phytools - analize filogenetice, biologie comparată, grafice
- ggtree - vizualizarea și adnotarea arborilor filogenetici
Note
modificare- ^ Hornik, Kurt (). „Frequently Asked Questions on R”. The Comprehensive R Archive Network. 7.29: What is the difference between package and library?. Arhivat din original la . Accesat în .
- ^ Wickham, Hadley; Bryan, Jennifer. „Introduction”. R Packages (ed. 2nd). Arhivat din original la . Accesat în .
- ^ a b c d e Chambers, John M. (). „S, R, and Data Science”. The R Journal (în engleză). 12 (1): 462–476. doi:10.32614/RJ-2020-028. ISSN 2073-4859. Arhivat din original la . Accesat în .
- ^ Vance, Ashlee (). „Data Analysts Captivated by R's Power”. New York Times. Arhivat din original la . Accesat în .
- ^ Tippmann, Sylvia (). „Programming tools: Adventures with R”. Nature News (în engleză). 517 (7532): 109–110. doi:10.1038/517109a. PMID 25557714.
- ^ a b Thieme, Nick (). „R generation”. Significance (în engleză). 15 (4): 14–19. doi:10.1111/j.1740-9713.2018.01169.x. ISSN 1740-9713.
- ^ „Writing R Extensions”. The Comprehensive R Archive Network. Arhivat din original la . Accesat în .
- ^ „CRAN Repository Policy”. The Comprehensive R Archive Network. Arhivat din original la . Accesat în .
- ^ a b CRAN Repository Maintainers. „CRAN Repository Policy”. The Comprehensive R Archive Network. R Project. Arhivat din original la . Accesat în .
- ^ a b Hornik, Kurt (). „Frequently Asked Questions on R”. The Comprehensive R Archive Network. 2.1: What is CRAN?: R Project. Arhivat din original la . Accesat în .
- ^ CRAN Repository Maintainers. „The Comprehensive R Archive Network”. R Project. Arhivat din original la . Accesat în .
- ^ CRAN Repository Maintainers. „CRAN - Contributed Packages”. The Comprehensive R Archive Network. CRAN. Arhivat din original la . Accesat în .
- ^ Hornik, Kurt (). „ANNOUNCE: CRAN”. r-announce (Mailing list). Arhivat din original la . Accesat în .
- ^ Thieme, Nick (). „R generation”. Significance (în engleză). 15 (4): 14–19. doi:10.1111/j.1740-9713.2018.01169.x. ISSN 1740-9713.
- ^ Fitzgerald, Brian (). „A Survey of Programming Language Package Systems”. Some Things Are Obvious. Arhivat din original la . Accesat în .
- ^ „CRAN Task Views”. cran.r-project.org. Arhivat din original la . Accesat în .
- ^ „Metacran”. Arhivat din original la . Accesat în .
- ^ Asay, Matt (). „Exponential growth of R's open source community threatens commercial competitors”. TechRepublic (în engleză). Arhivat din original la . Accesat în .
- ^ Ooms, Jeroen (). „Possible Directions for Improving Dependency Versioning in R”. The R Journal (în engleză). 5 (1): 197–206. doi:10.32614/RJ-2013-019. ISSN 2073-4859. Arhivat din original la . Accesat în .
- ^ Decan, A.; Mens, T.; Claes, M.; Grosjean, P. (). „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. doi:10.1109/SANER.2016.12. ISBN 978-1-5090-1855-0. Accesat în .
- ^ Hornik, Kurt (). „Are There Too Many R Packages?”. Austrian Journal of Statistics (în engleză). 41 (1): 59–66–59–66. doi:10.17713/ajs.v41i1.188. ISSN 1026-597X. Arhivat din original la . Accesat în .
- ^ „Welcome to MRAN”. Microsoft R Application Network. Microsoft. Arhivat din original la . Accesat în .
- ^ „Reproducibility: Using Fixed CRAN Repository Snapshots”. Microsoft R Application Network. Microsoft. Arhivat din original la . Accesat în .
- ^ Smith, David (). „MRAN snapshots, and you”. Revolutions. Revolution Analytics(d). Arhivat din original la . Accesat în .
- ^ „Microsoft R Application Network retirement”. techcommunity.microsoft.com (în engleză). Accesat în .
- ^ Lopp, Sean (). „RStudio Package Manager 1.2.0 - Bioconductor & PyPI”. RStudio Blog (în engleză). RStudio(d). Arhivat din original la . Accesat în .
- ^ Lopp, Sean (). „Announcing Public Package Manager and v1.1.6”. RStudio Blog (în engleză). RStudio(d). Arhivat din original la . Accesat în .
- ^ Huber, W; Carey, VJ; Gentleman, R; Anders, S; Carlson, M; Carvalho, BS; Bravo, HC; Davis, S; Gatto, L (). „Orchestrating high-throughput genomic analysis with Bioconductor”. Nature Methods. Nature Publishing Group(d). 12 (2): 115–121. doi:10.1038/nmeth.3252. PMC 4509590 . PMID 25633503.
- ^ „R-Forge: Welcome”. Arhivat din original la . Accesat în .
- ^ a b Hornik, Kurt (). „Frequently Asked Questions on R”. The Comprehensive R Archive Network. 5.1: Which add-on packages exist for R?. Arhivat din original la . Accesat în .
Lectură suplimentară
modificare- Claes, M.; Mens, T.; Grosjean, P. (). „On the maintainability of CRAN packages”. 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE). pp. 308–312. doi:10.1109/CSMR-WCRE.2014.6747183. ISBN 978-1-4799-3752-3.
- Decan, Alexandre; Mens, Tom; Claes, Maelick; Grosjean, Philippe (). „On the Development and Distribution of R Packages”. Proceedings of the 2015 European Conference on Software Architecture Workshops. ECSAW '15. Dubrovnik, Cavtat, Croatia: Association for Computing Machinery. pp. 1–6. doi:10.1145/2797433.2797476. ISBN 978-1-4503-3393-1.
- Fox, John (). „Aspects of the Social Organization and Trajectory of the R Project”. The R Journal (în engleză). 1 (2): 5–13. doi:10.32614/RJ-2009-014. ISSN 2073-4859.
- Fox, John; Leanage, Allison (). „R and the Journal of Statistical Software”. Journal of Statistical Software (în engleză). 73 (1): 1–13. doi:10.18637/jss.v073.i02. ISSN 1548-7660.
- Plakidas, Konstantinos; Schall, Daniel; Zdun, Uwe (). „Evolution of the R software ecosystem: Metrics, relationships, and their impact on qualities”. Journal of Systems and Software (în engleză). 132: 119–146. doi:10.1016/j.jss.2017.06.095. ISSN 0164-1212.
Legături externe
modificare- Rețeaua completă de arhive R (CRAN)
- METACRAN, un director de pachete R
- Vizualizări de sarcini CRAN, listarea pachetelor CRAN pe subiecte
- Materiale media legate de Pachetele limbajului de programare R la Wikimedia Commons