Vineri, 24 aprilie, s-a lansat versiunea 4.6 a limbajului de programare pentru statisticieni și data scient-iști, R. Noua versiune, poreclită „Because it was There”, aduce o serie de optimizări calitative, axate pe ușurința de utilizare, însă vine și cu o modernizare a infrastructurii de dezvoltare, făcând proiectele scrie în R mai rapide, dar și mai sigure.
Ultima dată când am scris despre limbajul de bază R a fost în aprilie 2023, atunci când se lansase versiunea R 4.3. La vremea respectivă am făcut un rezumat cu principalele funcționalități aduse în ultimii 3 ani. Mai jos, voi face același lucru, prezentând cele mai importante actualizări din versiunile 4.4, 4.5 și 4.6 ale R.
R 4.4.0, versiune lansată în 2024
Această versiune s-a concentrat pe eliminarea pașilor redundanți în scrierea codului.
Câteva dintre funcționalitățile principala aduse de aceasta sunt:
- Îmbunătățiri pentru pipe-ul nativ (
|>) – s-a lucrat la stabilitatea modului în care pipe-ul interacționează cu funcțiile complexe - Metode noi pentru serii de timp (
ts) – funcțiilehead()șitail()funcționează acum nativ pe obiecte de tip time-series, făcând inspectarea datelor mult mai rapidă - Optimizarea funcțiilor din familia
grep()(grep,sub,gsub,strsplit) – acestea au o performanță mai bună; în plus, s-a lansatgrepv(), un shortcut pentrugrep(..., value = TRUE) - Suport mai bun pentru valori complexe și
NULL– au fost aduse ajustări importante în modul în care sunt tratate aceste tipuri de date - Gestionarea erorilor (Global Calling Handlers) – s-a introdus un mecanism mai fin prin care erorile se pot intercepta global, fără a „împacheta” fiecare funcție în
tryCatch(); a fost un lucru vital pentru dezvoltatorii de aplicații Shiny sau API-uri (cu pachetulplumber)
R 4.5.0 din 2025
Versiunea 4.5 a fost considerată un un salt mare pentru performanță și educație.
Iată noutățile aduse de librajul R în anul 2025:
- Instalare paralelă a pachetelor – Funcția
install.packages()folosește acum implicitlibcurlpentru a descărca pachete simultan - Funcția
use()(Namespace Management) – O abordare mai curată pentru a importa funcții din pachete fără a încărca întregul pachet în mediu (asemănător cuimportdin Python) - Pachetul
palmerpenguinsintegrat – în zona de educație, setul de datepenguinsa fost adăugat ca set de date de bază (base dataset), oferind o alternativă modernă la clasiculiris - Memory Mapping for Large Objects – s-au făcut optimizări la modul în care R utilizează memoria RAM a calculatorului; dacă se lucrează cu un tabel de mare, eventual de câțiva gigabyți, R 4.5 este mai inteligent în a nu duplica datele inutil (Copy-on-Write mai agresiv)
- Logica de „Lazy Loading” îmbunătățită – pachetele se încarcă acum secvențial doar atunci când funcțiile lor sunt apelate, ceea ce reduce timpul de pornire al sesiunii R cu până la 30% dacă ai multe biblioteci instalate
R 4.6.0 în 2026
Versiunea lansată în urmă cu câteva zile transformă R-ul într-un mediu mult mai sigur și mai conectat la standardele web.
Cea mai recentă versiune de R vine cu câteva optimizări în zona de performanță, infrastructură, dar și securitate:
- Trecerea la standardul C++20 – R 4.6 folosește acum C++20 ca standard implicit (acolo unde compilatorul permite); pentru utilizatori, acest lucru înseamnă pachete mai rapide și mai bine optimizate, deoarece dezvoltatorii pot folosi funcții moderne ale limbajului C++
- Curățarea API-ului de C – pentru cei care scriu pachete ce interacționează cu C, R 4.6 a finalizat o actualizare masivă a API-ului. Toate funcțiile și structurile din headerele R sunt acum formalizate, ceea ce face dezvoltarea de pachete mult mai stabilă și mai puțin predispusă la erori la schimbarea versiunilor de R
- Securitate ridicată pentru pachete – a fost introdus un nou sistem de verificare a integrității pachetelor bazat pe hash-uri SHA-256 (înlocuind vechiul MD5); concret, atunci când sunt intalate noi pachee, R poate verifica mult mai riguros dacă fișierele au fost corupte sau modificate neautorizat în timpul descărcării
Avem și câteva schimbări aduse punctual la sintaxa din R:
- Operatorul nativ
%notin%– până acum, trebuia să scriem!(x %in% y)sau să definim manual operatorul; în R 4.6, acesta este inclus direct în pachetulbase - Îmbunătățirea funcției
summary()pentru caractere – în versiunile anterioare, această funcție pentru un vector de tip character afișa doar lunimea și clasa, iar de acum putem vedea distribuția frecvențelor; altfel spus, va afișa numărul de apariții pentru fiecare nume, similar cu un factor - Simplificarea pipe-ului nativ (
|>) la crearea graficelor de bază – s-a simplificat utilizarea pipe-ului cu funcțiaplot()fără a mai fi nevoie de placeholder-uldata = _ - Funția
list.files()poate căuta rapid și fără RegEx – dacă introducem parametrulfixed = TRUE, R nu va mai căuta în RegEx, ci direct caracterele care i-au fost scrise, făcând aproape imposibil să mai avem erori cu caracterele speciale, dar fiind și consistent cu restul ecosistemului, deoarece funcții precumgrep()sausub()aveau deja parametrulfixed = TRUE - Bibliografie și citări cu DOI (Digital Object Identifier) – atunci când citezi R în lucrări științifice folosind funcția
citation(), vei primi acum link-ul DOI permanent (10.32614/R.manuals), asigurând o referențiere mult mai precisă și profesională
Modificarea versiunii de R nu trebuie să sperie utilizatorii. Spre deosebire de alte limbaje de programare, codul scris anterior ar trebui să funcționeze la fel și în continuare, iar operatorii sau argumentele recente ar trebui să ajute cu scrierea codului nou.
Totuși, cred că este important de știut că ultima versiune de R aduce o serie de îmbunătățiri atât la nivel de limbaj, cât și infrastructură sau securitate.


