R | |
---|---|
Clasa de limba | multi-paradigma |
Tipul de execuție | interpretat |
Aparut in | 1993 [1] |
Autor |
Ross Ihaka Robert Gentleman |
Eliberare | 4.2.1 (23 iunie 2022 ) |
Tip sistem | dinamic |
A fost influențat | S , Schema |
Licență | GNU GPL 2 [3] |
Site-ul web | r-project.org _ |
OS | GNU/Linux [4] , BSD [4] , macOS [4] și Microsoft Windows [4] |
Fișiere media la Wikimedia Commons |
R este un limbaj de programare pentru procesarea datelor statistice și grafică, precum și un mediu de calcul gratuit și open source în cadrul Proiectului GNU . Limbajul a fost creat ca fiind similar cu limbajul S dezvoltat la Bell Labs și este implementarea sa alternativă, deși există diferențe semnificative între limbi, dar în cea mai mare parte codul din limbajul S funcționează în mediul R. Inițial, R a fost dezvoltat de Ross Aihaka ( ing. Ross Ihaka ) și Robert Gentleman ( ing. Robert Gentleman ) (prima literă a numelui lor este R); limbajul și mediul sunt întreținute și dezvoltate de Fundația R [5] .
Folosit pe scară largă ca software statistic pentru analiza datelor și a devenit standardul de facto pentru programele statistice [6] .
Limba și mediul sunt disponibile sub GNU GPL ; distribuite sub formă de coduri sursă, precum și aplicații compilate pentru o serie de sisteme de operare: FreeBSD , Solaris [7] și alte distribuții Unix și Linux , Windows , macOS .
R folosește o interfață de linie de comandă , deși sunt disponibile mai multe interfețe grafice de utilizator , cum ar fi pachetul R Commander , RKWard , RStudio , Weka , Rapid Miner , KNIME și integrări în suite office.
În 2010, R a intrat pe lista câștigătorilor competiției revistei Infoworld în nominalizarea pentru cel mai bun software de dezvoltare de aplicații open source [8] .
R este un limbaj de programare interpretat, principala modalitate de a lucra cu el este interpretul de comenzi. Limbajul este sensibil la majuscule, în ceea ce privește sintaxa este similar, pe de o parte, cu limbaje funcționale precum Scheme , pe de altă parte, cu limbaje de scripting moderne tipice , cu o sintaxă simplă și un set mic de elemente de bază. structurilor. Limbajul obiectului: orice obiect program din el are un set de atribute - o listă numită de valori care îl definesc.
Limbajul acceptă un set minim de tipuri de date primitive: caracter (caracter), numeric (numeric), logic (logic) și complex (complex). Variabilele numerice, pe lângă numerele obișnuite, pot lua valorile speciale NaN (Nu este un număr - „nu un număr”) și Inf (Infinit - „infinit”). Infinitul (pozitiv sau negativ) se obține atunci când rezultatul calculului depășește limitele intervalului reprezentat de implementare, NaN - în timpul operațiilor cu rezultat nedefinit. Pe lângă acestea, mai există o altă valoare specială foarte importantă, NA (Nedisponibil). Poate fi folosit pentru a stabili faptul că valoarea corespunzătoare implicată în calcule nu a fost obținută dintr-un anumit motiv (o situație destul de comună în calculele statistice când, din cauza eșecurilor în colectarea datelor, unele observații rămân fără rezultate).
Valorile tipurilor primitive pot fi combinate în vectori (vector), liste (listă), matrice sau matrice (matrice), inclusiv multidimensionale; aceste tipuri combinate stochează seturi de date de același tip primitiv. În plus, limbajul conține conceptul de factori (factor) - seturi de date categorice sau de scară care preiau un set de valori strict definit. În cele din urmă, pot fi create tabele (cadre de date) - structuri de date care stochează un set de parametri (caracteristici) diferiți (și având diferite tipuri) pentru fiecare rând (individual). O caracteristică a lui R este că operațiile cu vectori și matrice sunt suportate la nivelul limbajului în sine, ca, de exemplu, în APL .
Există o operație pentru extragerea și scrierea datelor (analog unei sarcini) " <-", precum și operațiile obișnuite de lucru cu date, inclusiv cele aritmetice. Accesul prin index la elementele vectorilor și matricelor se realizează folosind paranteze drepte, accesul la atributele listelor - prin operatorul " $". Există un set minim de constructe de programare imperative comune: operator condițional if, bucle whileși for. Expresiile în R pot fi descrise ca obiecte separate și evaluate după cum este necesar. Descrierea funcțiilor se bazează pe același mecanism. Există facilități încorporate pentru aplicarea expresiilor și funcțiilor la vectori și tablouri.
Funcțiile R pot fi grupate în pachete - module încărcabile care se conectează la orice program și oferă facilitățile de calcul combinate în ele. Pachetele pentru R pot fi dezvoltate în alte limbaje de programare, inclusiv C, ceea ce permite, pe de o parte, să compenseze resursele vizuale limitate ale limbajului R în sine și, pe de altă parte, să obțină performanțe de calcul ridicate dacă este necesar.
Limbajul în sine are mijloace destul de limitate și nu foarte convenabile de descriere a datelor, dar acest lucru este compensat de prezența instrumentelor de bibliotecă care vă permit să încărcați seturi de date prezentate în cele mai multe formate deschise și proprietare ca tabele R. Deci, tabelele în format text simplu, tabelele Excel de diferite versiuni, datele în formate CSV , XML și multe altele pot fi încărcate cu ușurință în R.
În general, ca limbaj de programare, R este destul de simplu și chiar primitiv. Cea mai mare putere a sa este capacitatea sa de a se extinde la infinit cu pachete. Distribuția de bază a lui R include un set de bază de pachete, iar în total, începând cu 2019, sunt disponibile peste 15.316 pachete [9] . Aproape toate instrumentele relevante ale calculului statistic universal sunt implementate în R, cum ar fi analiza de regresie și analiza serii de timp , precum și mulți algoritmi specifici pentru rezolvarea unor probleme de înaltă specializare și cercetare în anumite domenii.
O altă caracteristică a limbajului este capacitatea de a crea grafice de înaltă calitate la nivel tipografic, care pot fi exportate în formate grafice comune și utilizate pentru prezentări sau publicații. Sunt disponibile pachete care leagă R cu cadrele GUI (de exemplu, bazate pe Tcl/Tk ) și vă permit să creați utilități specializate de analiză statistică cu o interfață grafică cu utilizatorul și afișarea rezultatelor sub formă de grafice și diagrame.
Rezultat:
[1] 4 3 3 3 3 4 4 4 4 4 5 4 4 4 5 5 5 5 3 5 5 4 4 3 3 4 4 3 5 5 4 3 3 4 4 3 3 5 | ieșire a (38 de numere din 41 se potrivesc în șir) [39] 4 5 5 | (trei numere rămase) [1] 41 | ieșire n [1] 4 | ieșire m Estimare Nr. % | Prima coloană - numărul rândului din tabel 1 3 12 29.26829 | A doua coloană - tip de evaluare ("3"/"4"/"5") 2 4 17 41.46341111 | A 3-a coloană - numărul de evaluări 3 5 12 29.26829 | Coloana a 4-a - procentul de noteO serie de interfețe grafice au fost dezvoltate pentru confortul lucrului cu R, inclusiv RStudio , JGR , RKWard , SciViews-R , Statistical Lab , R Commander , Rattle și pachetul software Shiny .
În plus, o serie de editori de text și cod oferă moduri speciale de lucru cu R, în special ConTEXT , Emacs ( Emacs Speaks Statistics ), jEdit , Kate , Notepad++ , Syn , TextMate , Tinn-R , Vim , Bluefish , WinEdt (cu Pachetul RWinEdt), Gedit (cu pachetul rgedit/gedit-r-plugin). Există un plugin R specializat pentru mediul de dezvoltare Eclipse ; Funcțiile R și runtime pot fi accesate din Python folosind pachetul RPy; Puteți lucra cu R din pachetul econometric Gretl .
Revolution Analytics , fondată în 2007 și achiziționată de Microsoft în 2015, și-a bazat întreaga afacere pe comercializarea limbajului de programare R, în pachetul său comercial Revolution R , astfel de componente (nu sunt distribuite cu versiunea gratuită a limbajului) precum ParallelR (suport ). pentru runtime multithreading) sunt notabile), R Productivity Environment ( mediu de dezvoltare integrat ), RevoScaleR (suport pentru procesare masiv paralelă în cadrul conceptului de „ big data ”), RevoDeployR , biblioteci pentru integrarea cu servicii web, suport pentru SAS Institute formate de pachete statistice [10] .
În octombrie 2011, Oracle Corporation a lansat Big Data Appliance , un cluster NoSQL de servere de procesare masiv paralele cu instrumente software integrate bazate pe limbajul R și Apache Hadoop [11] , iar în februarie 2012, limbajul a fost încorporat în baza de date Oracle . 12] . În 2011, analiza în masă-paralelă prin intermediul R a fost implementată în complexele hardware-software Netezza ale IBM Corporation [13] [14] ; mai târziu, limba a fost acceptată în pachetul hardware și software SAP Hana .
Limbajul R este suportat și de mediile software comerciale Tibco Spotfire , SPSS (începând cu versiunea 16.0) [15] , Statistica (începând cu versiunea 9.0), Platform Symphony , Power BI , SAS , Tableau .
R și pachetele suplimentare sunt distribuite prin CRAN (un acronim pentru Comprehensive R Archive Network ). Începând cu sfârșitul anilor 2010, în lume sunt disponibile peste 60 de oglinzi CRAN , nodul principal fiind situat în Viena ( Austria ) [16] .
Jurnalul R [17] , un jurnal informațional distribuit gratuit, publicat de două până la trei ori pe an, include articole despre prelucrarea și inginerie a datelor statistice, destinate atât utilizatorilor de limbi, cât și dezvoltatorilor R. Din ianuarie 2001 până în octombrie 2008, a fost publicat ca un buletinul informativ R Știri [18] .
Una dintre cele mai populare conferințe lingvistice este useR! ( The R User Conference ), desfășurată anual din 2004 , reunește experți din diverse domenii.
Din 2009, în fiecare primăvară, la Chicago , are loc o conferință dedicată aplicării R în finanțe ( R/Finance: Applied Finance with R ). În 2013, a avut loc prima conferință dedicată utilizării R în asigurări ( R în Insurance ).
Software de matematică | |
---|---|
Calcule simbolice | |
Calcule numerice |