Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.
R 4.6.0 („Pentru că era acolo”) este programat pentru lansare pe 24 aprilie 2026. Aici rezumăm câteva dintre modificările mai interesante care au fost introduse. În postările anterioare de pe blog, am discutat despre noile caracteristici introduse în R 4.5.0 și versiunile anterioare (vezi linkurile de la sfârșitul acestei postări).
Odată ce R 4.6.0 este lansat, jurnalul complet al modificărilor va fi disponibil pe pagina „ȘTIRI” din versiunea r. Dacă doriți să fiți la curent cu evoluțiile din baza R, aruncați o privire pe pagina „ȘTIRI” r-devel.
! (values %in% collection)
Codul trebuie să fie lizibil și ușor de înțeles. Și, deși nu este un limbaj natural, există ceva oprit despre cod care se citește astfel:
If not a blog post is readable, I close the browser tab.
Pentru a verifica dacă una (sau mai multe) valori se află într-o colecție, R are %in% operator:
"a" %in% letters (1) TRUE "a" in LETTERS (1) FALSE
Aceasta este diferită de in cuvânt cheie, pe care îl utilizați când iterați o colecție:
for (x in letters(1:3)) {
message(x)
}
# a
# b
# c
Uneori doriți să știți dacă o valoare este absentă dintr-o colecție. Modul standard de a face acest lucru este inversarea rezultatelor din %in%:
! "a" %in% LETTERS (1) TRUE
Nu este ambiguu pentru interpretul R. Dar poate fi greu de citit și de înțeles – la scanarea acestei declarații, s-ar putea să uiți asta !
acționează după %in%. Ca atare, înfășurăm adesea %in% expresie cu paranteze pentru a face codul mai clar:
! ("a" %in% LETTERS)
(1) TRUE
Din motive de claritate, mulți dezvoltatori și-au implementat propriul operator de verificare a absențelor. Scrierea unui operator personalizat în R folosește o sintaxă similară cu cea utilizată atunci când scrieți o funcție:
`%NOTIN%` = function(x, y) {
! (x %in% y)
}
"a" %NOTIN% LETTERS
(1) TRUE
Dacă ai scrie același cod de mai multe ori în același proiect, ai scrie o funcție. În mod similar, dacă dvs. (sau echipa dvs.) ați scris aceeași funcție în mai multe fișiere sau proiecte, ați putea să o adăugați la un pachet și să o importați. Deci, dacă mulți dezvoltatori de pachete au implementat același operator sau funcție, în pachetele lor CRAN, poate ar trebui să fie împins la un plan superior…
Asta s-a întâmplat cu introducerea %notin% în R 4.6.0. Un operator care a fost găsit în o mulțime de pachete separate a fost mutat în sus în baza R:
"a" %notin% LETTERS (1) TRUE "a" %notin% letters (1) FALSE
Citate DOI
Dacă utilizați R în publicațiile sau proiectele dvs., poate fi necesar să furnizați o citare pentru acesta. rOpenSci are o postare pe blog despre citarea pachetelor R și R – de ce, când și cum să o faceți.
Pentru proiectul R ca întreg, există o funcție simplă citation() care oferă informațiile de care aveți nevoie:
citation()
To cite R in publications use:
R Core Team (2026). _R: A Language and Environment for Statistical
Computing_. R Foundation for Statistical Computing, Vienna, Austria.
doi:10.32614/R.manuals <https://doi.org/10.32614/R.manuals>.
<https://www.R-project.org/>.
A BibTeX entry for LaTeX users is
@Manual{,
...
}
...
În R 4.6.0, un DOI (Digital Object Identifier) a fost adăugat la intrarea de citare pentru a facilita referirea la R în lucrarea dvs. publicată.
summary(character_vector, character.method = "factor")
str() şi summary() sunt două dintre primele funcții la care ajung atunci când explorez un set de date. Pentru un cadru de date, acestea îmi spun
- ce tip de coloane sunt prezente (
str():chr,num,Date…); şi - ce este prezent în fiecare coloană (
summary(): oferă min, max, media fiecărei coloane numerice, de exemplu).
summary() funcționează cu alte structuri de date decât doar cadre de date.
Pentru factori, summary() vă spune câte observații ale nivelurilor factorilor au fost observate:
# 'species' and 'island' are factor columns in `penguins` summary(penguins(1:3)) species island bill_len Adelie :152 Biscoe :168 Min. :32.10 Chinstrap: 68 Dream :124 1st Qu.:39.23 Gentoo :124 Torgersen: 52 Median :44.45 Mean :43.92 3rd Qu.:48.50 Max. :59.60 NA's :2
Pentru coloanele de caractere, rezultatul de la summary() a fost putin obtuz:
# R 4.5.0 # 'studyName' and 'Species' are character columns in `penguins_raw` summary(penguins_raw(1:3)) studyName Sample Number Species Length:344 Min. : 1.00 Length:344 Class :character 1st Qu.: 29.00 Class :character Mode :character Median : 58.00 Mode :character Mean : 63.15 3rd Qu.: 95.25 Max. :152.00
R 4.6.0 adaugă o modalitate mai clară de a rezuma vectorii/coloanele de caractere la summary():
# R 4.6.0 summary(penguins_raw(1:3)) studyName Sample Number Species Length :344 Min. : 1.00 Length :344 N.unique : 3 1st Qu.: 29.00 N.unique : 3 N.blank : 0 Median : 58.00 N.blank : 0 Min.nchar: 7 Mean : 63.15 Min.nchar: 33 Max.nchar: 7 3rd Qu.: 95.25 Max.nchar: 41 Max. :152.00
De asemenea, putem rezuma vectori/coloane de caractere ca și cum ar fi factori:
# R 4.6.0 summary(penguins_raw(1:3), character.method = "factor") studyName Sample Number Species PAL0708:110 Min. : 1.00 Adelie Penguin (Pygoscelis adeliae) :152 PAL0809:114 1st Qu.: 29.00 Chinstrap penguin (Pygoscelis antarctica): 68 PAL0910:120 Median : 58.00 Gentoo penguin (Pygoscelis papua) :124 Mean : 63.15 3rd Qu.: 95.25 Max. :152.00
list.files(..., fixed = TRUE)
Să presupunem că avem trei fișiere în directorul meu de lucru: abc.Rmd, CONTRIBUTING.md şi README.md. Dacă vreau să obțin numele fișierelor pentru fișierele „.md” dintr-un script R, pot enumera acele fișiere care se potrivesc cu un model:
# R 4.5.0 list.files(pattern = ".md") (1) "abc.Rmd" "CONTRIBUTING.md" "README.md"
Hmmm.
În model, . se potrivește de fapt cu orice personaj. În R 4.5.0, dacă vreau să potrivesc . caracter explicit, pot scăpa de el în model. Dar potrivirea modelelor poate duce la un cod complicat în R, deoarece unele caractere sunt tratate special de modelul de potrivire, iar unele sunt tratate special de parserul de șiruri al lui R.
Pentru a-i spune lui R să găsească fișiere cu „.md” literal în numele fișierului, scăpăm de . caracter de două ori: o dată pentru . (pentru a spune modelului de potrivire să se potrivească cu a .mai degrabă decât orice personaj), și o dată pentru a scăpa de (pentru a-i spune lui R că următorul este într-adevăr o bară oblică inversă)
# R 4.5.0 list.files(pattern = "\.md") (1) "CONTRIBUTING.md" "README.md"
R 4.0.x a curățat puțin asta, acum putem folosi „șiruri brute” în R. Tot ceea ce se află între paranteze din următorul model este trecut direct la modelul de potrivire:
# R 4.5.0 list.files(pattern = r"(.md)")
Acum, în R 4.6.0, putem indica să list.files() (și sinonimul dir()) că modelul nostru este un șir fix (mai degrabă decât o expresie regulată). Cu aceasta, nu trebuie să scăpăm de .
caracter pentru a se potrivi cu sufixul „.md”.
list.files(pattern = ".md", fixed = TRUE) (1) "CONTRIBUTING.md" "README.md"
Alte chestiuni
read.dcf()acum permite linii de comentarii, ceea ce înseamnă că vă puteți adnota fișierele de configurare (de exemplu, pentru {lintr}).df |> plot(col2 ~ col1)poate fi folosit acum pentru trasarea de bază; aceasta este puțin mai ordonată pentru munca de explorare decâtdf |> plot(col2 ~ col1, data = _)- C++20 este acum standardul C++ implicit
Încercarea R 4.6.0
Pentru a elimina durerea instalării celei mai recente versiuni de dezvoltare a R, puteți folosi docker. Pentru a utiliza devel versiunea R, puteți folosi următoarele comenzi:
docker pull rstudio/r-base:devel-jammy docker run --rm -it rstudio/r-base:devel-jammy
Odată ce R 4.6 este versiunea lansată de R și r-docker depozitul a fost actualizat, ar trebui să utilizați următoarea comandă pentru a testa R 4.6.
docker pull rstudio/r-base:4.6-jammy docker run --rm -it rstudio/r-base:4.6-jammy
O modalitate alternativă de a instala mai multe versiuni de R pe aceeași mașină este utilizarea
rig.
Vezi de asemenea
Versiunile R 4.x au introdus o mulțime de modificări interesante. Acestea au fost rezumate în postările noastre anterioare pe blog:
- R 4.0.0
- R 4.1.0
- R 4.2.0
- R 4.3.0
- R 4.4.0
- R 4,5,0
Pentru actualizări și revizuiri ale acestui articol, consultați postarea inițială
Noobz.ro.com oferă actualizări zilnice prin e-mail despre R știri și tutoriale despre învățarea R și multe alte subiecte. Faceți clic aici dacă doriți să publicați sau să găsiți un job R/data-science.
Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.
Continuă să citești: Ce este nou în R 4.6.0?
