R Versiunea 4.5.0 a ieșit!

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

Unele ferestre. Olympus XA, Portra 800. Foto de Nicholas Tierney

Noua versiune R 4.5.0 a ieșit și ar trebui să o obțineți!

Am citit fișierul de știri, care detaliază fiecare schimbare – sunt multe! V -aș recomanda să aveți un degresat.

Dacă doriți să aveți un skim al dosarului de știri, folosiți chiar și news() Funcția R, care va deschide fișierul de știri în panoul de fișiere de ajutor din RStudio. Acest lucru ne poate spune, de asemenea, câte știri au fost adăugate:

news_4_5_0 <- news(Version == "4.5.0")
# just show the first 5
head(news_4_5_0)
#>                         Changes in version 4.5.0                        
#> 
#> NEW FEATURES
#> 
#>     o   as.integer(rl) and hence as.raw(rl) now work for a list of
#>   raw(1) elements, as proposed by Michael Chirico's PR#18696.
#> 
#>     o   graphics' grid() gains optional argument nintLog.
#> 
#>     o   New functions check_package_urls() and check_package_dois() in
#>   package tools for checking URLs and DOIs in package sources.
#> 
#>     o   New head() and tail() methods for class "ts" time series,
#>   proposed by Spencer Graves on R-devel.
#> 
#>     o   New qr.influence() function, a "bare bones" interface to the
#>   lm.influence() leave-one-out diagnostics computations; wished
#>   for in PR#18739.
#> 
#>     o   Package citation() results auto-generated from the package
#>   metadata now also provide package DOIs for CRAN and
#>   Bioconductor packages.

Munca acestei versiuni a implicat multe persoane și există 150 de schimbări. Cred că merită să citesc aceste schimbări și sunt incredibil de recunoscător tuturor voluntarilor uimitori care și -au pus timpul și energia pentru a continua să facă R stabil și minunat.

M -am gândit că voi împărtăși doar câteva dintre schimbările care mi -au sărit la mine în timp ce citeam.

install.packages() şi download.packages() descărcați pachetele simultan folosind libcurlreducerea semnificativă a timpilor de descărcare la instalarea sau descărcarea mai multor pachete.

Asta e fain! Instalarea pachetelor este acum mult mai rapidă! Îmi place asta. În general, folosesc pakceea ce cred că face deja acest lucru. Dar este un câștig frumos pentru Vanilla R să știe că pot descărca lucrurile mai repede.

Există două seturi de date noi adăugate la R! Ultima dată (pe care l -am putut găsi) a fost adăugat un nou set de date la R a fost în R versiunea R 3.0.2, care, care a mers la datele de lansare, a fost în septembrie 2013. Deci, acum aproape 12 ani! Acel articol de știri citește:

Set de date npk a fost copiat din masă pentru a permite efectuarea mai multor teste fără a fi instalate pachetele recomandate.

S -ar putea să fiți familiarizați cu una dintre aceste seturi de date noi, datele Penguins (!) Din palmerpenguins Pachet R.

Lucrări de artă de Allison Horst

Știrile se arată:

Noi seturi de date Pinguini și Penguins_Raw datorită Ella Kaye, Heather Turner și Kristen Gorman.

Este uriaș! Ei bine, cred că este. Acum nu trebuie să scriem library(palmerpenguins) Dacă doriți să utilizați penguins sau penguins_raw date. Privind exemplele, putem vedea următoarele vizualizări de bază:

## bill depth vs. length by species (color) and sex (symbol):
## positive correlations for all species, males tend to have bigger bills
head(penguins)
#>   species    island bill_len bill_dep flipper_len body_mass    sex year
#> 1  Adelie Torgersen     39.1     18.7         181      3750   male 2007
#> 2  Adelie Torgersen     39.5     17.4         186      3800 female 2007
#> 3  Adelie Torgersen     40.3     18.0         195      3250 female 2007
#> 4  Adelie Torgersen       NA       NA          NA        NA    2007
#> 5  Adelie Torgersen     36.7     19.3         193      3450 female 2007
#> 6  Adelie Torgersen     39.3     20.6         190      3650   male 2007
names(penguins)
#> (1) "species"     "island"      "bill_len"    "bill_dep"    "flipper_len"
#> (6) "body_mass"   "sex"         "year"
sym <- c(1, 16)
pal <- c(
  "darkorange",
  "purple",
  "cyan4"
  )
plot(
  bill_dep ~ bill_len, 
  data = penguins, 
  pch = sym(sex), 
  col = pal(species)
  )

Este demn de remarcat faptul că numele variabile sunt ușor diferite în noua versiune de bază R – bill_len (nu bill_length) bill_dep (nu bill_depth), și flipper_len (nu flipper_length), pe care le notează în Helpfile: „Datele Penguins au câteva nume variabile mai scurte decât versiunea Palmerpenguins, pentru cod compact și afișare de date.”

S -a lucrat un pic de lucru pe datele Pinguinilor și am vrut să împărtășesc referințele relevante:

  • Gorman, KB, Williams, TD și Fraser, WR (2014) Dimorfism sexual ecologic și variabilitatea mediului în cadrul unei comunități de pinguini din Antarctica (genul Pygoscelis). PLOS ONE 9, 3, E90081; doi: 10.1371/journal.pone.0090081.

  • Horst, AM, Hill, AP și Gorman, KB (2022) Palmer Arhipelago Pinguins Date în pachetul Palmerpenguins R – o alternativă la irisurile lui Anderson. R Journal 14, 1; doi: 10.32614/RJ-2022-020.

  • Kaye, E., Turner, H., Gorman, KB, Horst, AM și Hill, AP (2025) Pregătirea datelor Palmer Pinguins pentru pachetul de seturi de date din R. doi: 10.5281/zenodo.14902740.

Și există un alt set de date!

Noul set de date de seturi de date datorită Heather Turner și Ella Kaye, utilizate în exemple.

Nu mai întâlnisem asta înainte, FFILE de ajutor (?gait) citește:

Unghiul de șold și genunchi (în grade) printr -un ciclu de mișcare de 20 de puncte pentru 39 de băieți.

Care este stocat ca un tablou 3D, așa cum se menționează în fișierul de ajutor:

Un tablou tridimensional cu dimensiunile C (20, 39, 2) dând „unghiul de șold” și „unghiul genunchiului” (în grade) pentru 39 de repetări ale unui ciclu de mers de 20 de puncte (peste timpi de mers standardizat).

head(gait)
#> , , Variable = Hip Angle
#> 
#>        Subject
#> Time    boy1 boy2 boy3 boy4 boy5 boy6 boy7 boy8 boy9 boy10 boy11 boy12 boy13
#>   0.025   37   47   46   37   20   57   46   46   46    35    38    35    34
#>   0.075   36   46   44   36   18   48   38   46   42    34    37    31    31
#>   0.125   33   42   39   27   11   44   33   43   37    29    33    29    27
#>   0.175   29   34   34   20    8   35   25   40   34    28    29    26    23
#>   0.225   23   27   33   15    7   31   18   36   31    19    26    22    19
#>   0.275   18   21   27   15    5   27   15   30   25    15    20    19    15
#>        Subject
#> Time    boy14 boy15 boy16 boy17 boy18 boy19 boy20 boy21 boy22 boy23 boy24 boy25
#>   0.025    43    43    40    51    52    36    35    46    43    55    39    37
#>   0.075    41    37    41    49    46    33    37    38    41    51    38    34
#>   0.125    36    35    36    45    41    28    33    30    37    47    31    30
#>   0.175    31    28    32    39    35    22    27    23    30    41    27    27
#>   0.225    26    26    27    31    31    18    22    17    24    35    21    26
#>   0.275    20    21    20    23    24    13    14    13    16    30    14    19
#>        Subject
#> Time    boy26 boy27 boy28 boy29 boy30 boy31 boy32 boy33 boy34 boy35 boy36 boy37
#>   0.025    36    36    42    38    46    54    52    32    46    46    48    44
#>   0.075    33    33    40    34    47    48    44    28    41    44    42    41
#>   0.125    28    30    40    30    44    44    44    26    38    40    42    38
#>   0.175    22    28    34    23    37    37    33    22    31    35    35    32
#>   0.225    18    21    23    17    29    30    28    19    25    31    30    24
#>   0.275    13    15    15    12    23    27    27    13    20    25    23    18
#>        Subject
#> Time    boy38 boy39
#>   0.025    55    48
#>   0.075    56    50
#>   0.125    51    47
#>   0.175    46    42
#>   0.225    41    37
#>   0.275    36    29
#> 
#> , , Variable = Knee Angle
#> 
#>        Subject
#> Time    boy1 boy2 boy3 boy4 boy5 boy6 boy7 boy8 boy9 boy10 boy11 boy12 boy13
#>   0.025   10   16   18    5    2   15   13   14   15     9    13     7     9
#>   0.075   15   25   27   14    6   17   16   17   20    22    24     8    14
#>   0.125   18   28   32   16    6   23   22   18   23    25    27    11    16
#>   0.175   18   25   32   17    6   23   17   19   26    21    23    12    15
#>   0.225   15   18   28   10    5   20   12   19   25    10    18     8    15
#>   0.275   14   12   23    8    6   19    9   15   21     9    13     6    12
#>        Subject
#> Time    boy14 boy15 boy16 boy17 boy18 boy19 boy20 boy21 boy22 boy23 boy24 boy25
#>   0.025    15     6    11    24    16    16     7    21    11    12     8    11
#>   0.075    20    11    19    32    20    20    13    24    14    17    12    20
#>   0.125    22    20    30    35    21    22    14    25    14    20    14    22
#>   0.175    22    18    28    33    20    21    17    21    11    20    13    21
#>   0.225    21    13    25    29    18    20    14    16     8    18    12    21
#>   0.275    19     9    17    24    14    20     8     9     5    12     9    17
#>        Subject
#> Time    boy26 boy27 boy28 boy29 boy30 boy31 boy32 boy33 boy34 boy35 boy36 boy37
#>   0.025    16    19    13    11    17    20    18     9     8     9    13    19
#>   0.075    20    26    23    15    25    20    18    12    10    18    18    23
#>   0.125    22    28    30    19    30    22    25    16    17    19    27    26
#>   0.175    21    28    28    20    30    16    23    15    16    19    26    25
#>   0.225    20    24    19    18    27    10    18    14    12    19    25    21
#>   0.275    20    18    10    17    22    10    19    11    10    15    18    18
#>        Subject
#> Time    boy38 boy39
#>   0.025    16    14
#>   0.075    23    25
#>   0.125    28    32
#>   0.175    28    34
#>   0.225    25    30
#>   0.275    21    20

Cu exemplele care au o vizualizare a datelor Nifty:

plot(
  gait(, 1, ), 
  type = "b",
  xlim = range(gait(,,1)), 
  ylim = range(gait(,,2)), 
  xlab = "Hip Angle", 
  ylab = "Knee Angle", 
  main = "'gait' data : Boy 1"
)
mtext(
  "all other boys", 
  col = "thistle"
  )
grid()
matlines(
  gait(, -1, 1), 
  gait(, -1, 2), 
  type = "l", 
  lty = 1, 
  col = adjustcolor("thistle", 1/3)
  )

Este demn de remarcat referințele pentru aceste date:

  • Olshen, RA, Biden, En, Wyatt, MP și Sutherland, D. (1989) Analiza mersului și bootstrap -ul. Analele statisticilor 17, 4, 1419–1440. doi: 10.1214/aos/1176347372

  • Ramsay, Jo, și Silverman, BW (2006) Analiza funcțională a datelor, ediția a II -a, New York: Springer.

  • Ramsay, J. (2023) FDA: Analiza funcțională a datelor. R Versiunea pachetului 6.1.4, https://cran.r-project.org/package=fda.

Sursele BLAS și LAPACK BLUDLED au fost actualizate la cele expediate ca parte a lui Lapack 3.12.1 din ianuarie 2025.

Acestea ajută la alimentarea multor operații liniare de algebră în R și probabil vor exista îmbunătățiri ale vitezei și alte eficiențe. Deci, merită instalat doar pentru asta.

Am încercat să citesc fișierele de știri R din aproximativ 2017 sau 2018. Cred că l -am auzit pe Roger Peng spunând că a citit fișierele de știri R pe podcast -ul nu atât de standard cu Hilary Parker. Mi s -a părut o idee bună, așa că am încercat să fac la fel.

De obicei, mă implică să citesc dosarul de știri și să caut lucruri care par relevante pentru mine și pentru munca mea. Nu înțeleg întotdeauna totul, de fapt, aș spune că nu înțeleg foarte multe. Dar din când în când apare ceva important pentru mine. De exemplu, știrile pentru R 4.0.0 despre matrici și tablouri:

Obiectele matriceale moștenesc acum și din clasa „Array”, deci de exemplu, clasa (diag (1)) este C („Matrix”, „Array”). Acest lucru invalidează codul presupunând în mod incorect că clasa (matrix_obj)) are o lungime.

Metodele S3 pentru „Array” de clasă sunt acum expediate pentru obiecte matriceale.

A rezultat o schimbare de rupere a Greta, pe care am putut să o identific și să o remediez.

Altă dată când mi se pare util să știu cum să caut fișierul de știri este să -mi amintesc când au fost introduse câteva noi funcții cheie. De exemplu, știind că țeava autohtonă |> a fost introdus în 4.1.0, dar sublinierea _ Placeholder a fost introdus doar în 4.2.0 este cu adevărat util dacă dezvolt pachete pentru a ști de ce versiune de R depinde.

De asemenea, vizitez deseori pagina „Eliberări anterioare ale R pentru Windows” pentru a vedea când A fost lansată o versiune a lui R. Aceasta este pentru regula mea (oarecum) arbitrară care

Când instalați un nou versiune minoră de R (adică atunci când schimbați versiunea minoră, de exemplu, de la 4.1.0 la 4.2.0, nu 4.1.0 la 4.1.1), trebuie să instalați din nou toate pachetele R.

Sigur, este enervant. Dar o văd ca o oportunitate de a începe din nou. De obicei fac ceva de genul următoarelor

install.packages("pak")
library(pak)
pkg_install("tidyverse", dependencies = TRUE)
pkg_install("devtools", dependencies = TRUE)
pkg_install("naniar", dependencies = TRUE)
pkg_install("blogdown", dependencies = TRUE)
pkg_install("greta", dependencies = TRUE)
pkg_install("brolgar", dependencies = TRUE)
pkg_install("targets", dependencies = TRUE)
pkg_install("ropensci/geotargets", dependencies = TRUE)
pkg_install("milesmcbain/datapasta", dependencies = TRUE)

Și acest lucru îmi primește 90% din drum acolo.

Este demn de remarcat faptul că, dacă sunteți utilizator Windows, puteți utiliza installr Pachet pentru a actualiza R și alte dependențe.

Și pe această notă merită menționată și rig Utilitatea liniei de comandă. Acest lucru vă permite să instalați mai ușor diferite și să lansați versiuni ale lui R. Dacă ați văzut software -ul RSWITCH al lui Bob Rudis, aceasta este versiunea actualizată a acestui lucru (Bob a arhivat Rswitch).

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.