(social4i size = „mic” align = „align-left”)
->
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
R 4.5.0 („Ce zici de douăzeci și șase”) a fost lansat la 11 aprilie 2025. Aici rezumăm câteva dintre schimbările interesante care au fost introduse. În postările anterioare de blog am discutat despre noile caracteristici introduse în R 4.4.0 și versiunile anterioare (vezi linkurile de la sfârșitul acestei postări).
ChangeLog complet poate fi găsit la pagina „Știri” de lansare R și dacă doriți să fiți la curent cu evoluțiile din baza R, aruncați o privire asupra paginii de știri R-Devel.
pinguini
Cine nu iubește un nou set de date?
Unul dintre lucrurile grozave despre învățarea R pentru știința datelor este că există o colecție de seturi de date disponibile pentru a lucra, încorporată în instalarea de bază a setului de date Palmer Pinguins a fost disponibil printr -un pachet extern din 2020 și a fost adăugat la R v4.5.0 ca set de date de bază.
Acest set de date este util pentru sarcini de clustering și clasificare și a fost evidențiat inițial ca o alternativă la iris
set de date.
Pe lângă penguins
set de date, există o legătură penguins_raw
set de date. Acest lucru se poate dovedi util atunci când predăm sau învățarea curățării datelor.
use()
Dacă ați lucrat în alte limbi decât R, abordarea sa de a importa codul din pachete poate părea ciudată. Într -un modul Python, fie veți importa un pachet și apoi utilizați funcții din interiorul spațiului de nume explicit pentru pachet:
import numpy numpy.array((1, 2, 3)) # array((1, 2, 3))
Sau ați importa o funcție specifică pe nume, înainte de utilizarea acesteia
from numpy import array array((1, 2, 3)) # array((1, 2, 3))
Într-un script R, fie folosim funcții explicit de nume (fără a încărca pachetul care conține):
penguins |> dplyr::filter(bill_len > 40)
Sau încărcăm un pachet, adăugând toate funcțiile exportate la spațiul nostru de nume, apoi folosim funcțiile specifice de care avem nevoie:
library("dplyr") penguins |> filter(bill_len > 40)
Ultima formă poate provoca o anumită confuzie. Dacă încărcați mai multe pachete, pot exista conflicte de denumire între funcțiile exportate. Într -adevăr, există un filter()
Funcționați în pachetul de bază {stats}
care este anulat atunci când încărcăm {dplyr}
– Deci comportamentul filter()
diferă înainte și după încărcare {dplyr}
.
R 4.5.0 introduce o nouă modalitate de a încărca obiecte dintr -un pachet: use()
. Acest lucru ne permite să fim mai precisi cu privire la funcțiile pe care le încărcăm și de unde:
# R 4.5.0 (New session) use("dplyr", c("filter", "select")) # Attaching package: ‘dplyr’ # # The following object is masked from ‘package:stats’: # # filter # penguins |> filter(bill_len > 40) |> select(species:bill_dep) # species island bill_len bill_dep # 1 Adelie Torgersen 40.3 18.0 # 2 Adelie Torgersen 42.0 20.2 # 3 Adelie Torgersen 41.1 17.6 # 4 Adelie Torgersen 42.5 20.7 # 5 Adelie Torgersen 46.0 21.5 # 6 Adelie Biscoe 40.6 18.6
Rețineți că numai acele obiecte pe care noi use()
Importați din pachet:
# R 4.5.0 (Session continued) n_distinct(penguins) # Error in n_distinct(penguins) : could not find function "n_distinct"
O caracteristică similară cu use()
a fost disponibil în
{box}
şi
{import}
pachete pentru o perioadă. {Box} este un proiect deosebit de interesant, deoarece permite un control mai mare cu granulație asupra importului și exportului de obiecte din fișiere de cod specifice.
Descărcări paralele
Istoric, The install.packages()
Funcția a funcționat secvențial – atât descărcarea, cât și instalarea pachetelor a fost efectuată pe rând. Aceasta înseamnă că ar putea fi lent să instalați multe pachete.
Recomandăm adesea
{pak}
Pachet pentru instalarea pachetelor, deoarece poate descărca și instala pachete în paralel.
Dar de la R 4.5.0, install.packages()
(și aferent
download.packages()
şi update.packages()
) sunt capabile să descarce pachete în paralel. Acest lucru poate accelera întregul proces de descărcare și instalare. Așa cum este descris într-o postare pe blogul R-Project de Tomas Kalibera, viteza tipică așteptată este de aproximativ 2-5x (deși acest lucru este extrem de variabil).
C23
C23 este standardul actual pentru limba C. O mare parte din baza R și multe pachete R necesită compilare de la C. Dacă un compilator C23 este disponibil pe mașina dvs., R va utiliza acum acest lucru.
grepv ()
Pentru potrivirea modelului în baza R, grep()
și funcțiile conexe sunt principalele instrumente. În mod implicit, grep()
Returnează indexul oricărei intrări dintr -un vector care se potrivește cu un model.
penguins_raw$Comments |> grep(pattern = "Nest", x = _) # (1) 7 8 29 30 39 40 69 70 121 122 131 132 139 140 163 164 193 194 199 # (20) 200 271 272 277 278 293 294 299 300 301 302 303 304 315 316 341 342
Am reușit să extragem valorile vectorului de intrare, mai degrabă decât indicii, specificând value = TRUE
în argumente pentru grep()
:
penguins_raw$Comments |> grep(pattern = "Nest", x = _, value = TRUE) # (1) "Nest never observed with full clutch." # (2) "Nest never observed with full clutch." # (3) "Nest never observed with full clutch." # (4) "Nest never observed with full clutch." # (5) "Nest never observed with full clutch." # (6) "Nest never observed with full clutch. Not enough blood for isotopes."
Acum, în R 4.5.0, o nouă funcție grepv()
a fost introdus care va extrage automat valori mai degrabă decât indici din potrivirea modelului:
penguins_raw$Comments |> grepv(pattern = "Nest", x = _) # (1) "Nest never observed with full clutch." # (2) "Nest never observed with full clutch." # (3) "Nest never observed with full clutch." # (4) "Nest never observed with full clutch." # (5) "Nest never observed with full clutch." # (6) "Nest never observed with full clutch. Not enough blood for isotopes."
Contribuții de la R-Dev-Days
Multe dintre schimbările care sunt descrise în „R News” pentru noua versiune au apărut ca contribuții de la „R Dev Day”. Acestea sunt evenimente obișnuite care urmăresc extinderea numărului de persoane care contribuie la codul la nucleul lui R. în 2024, personalul Jumping Rivers a participat la aceste evenimente la Londra și, respectiv, Newcastle (înainte de „Satrdays” și, respectiv, „strălucitor în producție”). Zilele dev sunt adesea atașate de o conferință și oferă o provocare interesantă tuturor celor interesați să păstreze R sănătos și să învețe unele abilități noi.
Încercarea R 4.5.0
Pentru a elimina durerea instalării celei mai recente versiuni de dezvoltare a R, puteți utiliza Docker. Pentru a folosi devel
versiunea R, puteți utiliza următoarele comenzi:
docker pull rstudio/r-base:devel-jammy docker run --rm -it rstudio/r-base:devel-jammy
Odată ce R 4.5 este versiunea lansată a lui R și a r-docker
Depozitul a fost actualizat, ar trebui să utilizați următoarea comandă pentru a testa R 4.5.
docker pull rstudio/r-base:4.5-jammy docker run --rm -it rstudio/r-base:4.5-jammy
O modalitate alternativă de a instala mai multe versiuni de R pe aceeași mașină se folosește rig
.
Vezi și
Versiunile R 4.X au introdus o mulțime de schimbări interesante. Acestea au fost rezumate în postările noastre anterioare de blog:
- R 4.0.0
- R 4.1.0
- R 4.2.0
- R 4.3.0
- R 4.4.0
Pentru actualizări și revizii la acest articol, consultați postarea originală
Oferte R-Bloggers.com Actualizări zilnice prin e-mail Despre știri și tutoriale despre învățarea R și multe alte subiecte. Faceți clic aici dacă doriți să postați sau să găsiți o lucrare R/Data-Science.
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
Continuați să citiți: Ce este nou în R 4.5.0?