Programmering

Hvordan kjøre R 4.0 i Docker - og 3 kule nye R 4.0-funksjoner

Det er noen interessante endringer og oppdateringer i R 4.0. Her ser jeg på tre av dem. I tillegg gir jeg deg trinnvise instruksjoner om hvordan du installerer R 4.0, slik at det ikke forstyrrer den eksisterende R-installasjonen din - ved å kjøre R med Docker.

Docker er en plattform for å lage "containere" - helt selvstendige, isolerte miljøer på datamaskinen din. Tenk på dem som et minisystem på systemet ditt. De inkluderer sitt eget operativsystem, og deretter alt du vil legge til det - applikasjonsprogramvare, skript, data osv. Beholdere er nyttige for mange ting, men her vil jeg fokusere på bare en: å teste nye versjoner av programvare. uten å skru opp ditt nåværende lokale oppsett.

Å kjøre R 4.0 og den siste forhåndsversjonen av RStudio i en Docker-container er ganske enkelt. Hvis du ikke vil følge med Docker-delen av denne veiledningen, og du bare vil se hva som er nytt i R, blar du ned til delen "Tre nye R 4.0-funksjoner".

Kjør R 4.0 i en Docker-container

Hvis du ville liker å følge med, installer desktop Docker på systemet ditt hvis du ikke allerede har det: Gå til //www.docker.com/products/docker-desktop og last ned riktig desktopversjon for datamaskinen din (Windows, Mac eller Linux). Start den deretter. Du bør se et hval-Docker-ikon som kjører et sted på systemet ditt.

Sharon Machlis,

Deretter trenger vi et Docker-bilde for R 4.0. Du kan tenke på et Docker-bilde som et sett med instruksjoner for å lage en container med spesifikk programvare inkludert. Takk til Adelmo Filho (datavitenskapsmann i Brasil) og Rocker R Docker-prosjektet, som gir noen veldig nyttige Docker-bilder. Jeg modifiserte Docker-bildene deres bare litt for å lage den jeg brukte i denne opplæringen.

Her er syntaksen til løpe et Docker-bilde på ditt eget system for å lage en container.

docker run --rm -p 8787: 8787 -v / path / to / local / dir: / home / rstudio / newdir brukernavn / docker_image_name: image_tag

docker er hvordan du trenger å starte en hvilken som helst Docker-kommando. løpe betyr at jeg vil kjøre et bilde og lage en container fra det bildet. De --rm flagg betyr å fjerne beholderen når den er ferdig. Det gjør du ikke ha å inkludere --rm; men hvis du kjører mange containere og ikke sletter dem, begynner de å ta opp mye diskplass. De -p 8787: 8787 er bare nødvendig for bilder som må kjøres på en systemport, noe RStudio gjør (det samme gjør Shiny hvis du planlegger å inkludere det en dag). Kommandoen ovenfor spesifiserer port 8787, som er RStudios vanlige standard.

De -v skaper et volum. Husker du da jeg sa Docker-containere er selvstendige og isolerte? Det betyr isolert. Som standard har beholderen ikke tilgang hva som helst utenfor den, og resten av systemet ditt får ikke tilgang til noe innsiden beholderen. Men hvis du setter opp et volum, kan du koble en lokal mappe med en mappe inne i containeren. Deretter synkroniseres de automatisk. Syntaksen:

-v sti / til / lokal / katalog: / sti / til / container / katalog

Med RStudio bruker du vanligvis / home / rstudio / name_of_new_directory for containerkatalogen.

På slutten av docker kjøre kommando er navnet på bildet du vil kjøre. Bildet mitt, som mange Docker-bilder, er lagret på Docker Hub, en tjeneste satt opp av Docker for deling av bilder. Som med GitHub får du tilgang til et prosjekt ved å spesifisere en brukernavn / reponame. I dette tilfellet legger du vanligvis til : the_tag, som hjelper hvis det er forskjellige versjoner av det samme bildet.

Nedenfor er kode du kan endre for å kjøre bildet mitt med R 4.0 og den siste forhåndsversjonen av RStudio på systemet ditt. Sørg for å erstatte en sti til en av din kataloger for / Brukere / smachlis / Document / MoreWithR. Du kan kjøre dette i et Mac-terminalvindu eller Windows-ledetekst eller PowerShell-vindu.

docker run --rm -p 8787: 8787 -v / Users / smachlis / Documents / MoreWithR: / home / rstudio / morewithr sharon000 / my_rstudio_image: version1

Når du kjører denne kommandoen for første gang, må Docker laste ned bildet fra Docker Hub, så det kan ta en stund. Etter det, med mindre du sletter den lokale kopien av bildet, bør det være mye raskere.

Nå når du åpner lokal vert: 8787 i en nettleser, bør du se RStudio.

Sharon Machlis,

Standard brukernavn og passord er begge rstudio, noe som selvfølgelig ville være forferdelig hvis du kjørte dette i skyen. Men jeg synes det er bra på min lokale maskin, siden jeg normalt ikke har gjort det noen passordet på det vanlige RStudio-skrivebordet mitt.

Hvis du sjekker R-versjonen i din containeriserte R / RStudio, ser du den er versjon 4.0. RStudio skal være versjon 1.3.947, den siste forhåndsutgivelsen da artikkelen først ble publisert. Disse er begge forskjellige versjoner enn de som er installert på min lokale maskin.

Tre nye R 4.0-funksjoner

Så la oss se på noen få nye funksjoner i R 4.0.

Nye strengerAsFactors standard

I koden nedenfor lager jeg en enkel dataramme med informasjon om fire byer og sjekker deretter strukturen.

 By <- c ("New York", "San Francisco", "Boston", "Seattle") Stat <- c ("NY", "CA", "MA", "Seattle") PopDensity <- c (26403 , 18838, 13841, 7962) tettheter <- data.frame (City, State, PopDensity) str (densiteter) 'data.frame': 4 obs. av 3 variabler: $ By: chr "New York" "San Francisco" "Boston" "Seattle" $ Stat: chr "NY" "CA" "MA" "Seattle" $ Pop Tetthet: num 26403 18838 13841 7962 

Legg merke til noe uventet? By og stat er karakterstrenger, selv om jeg ikke spesifiserte det stringsAsFactors = FALSE. Ja, til slutt er R data.frame standard stringsAsFactors = FALSE. Hvis jeg kjører den samme koden i en eldre versjon av R, vil byen og staten være faktorer.

Nye fargepaletter og funksjoner

La oss deretter se på en ny innebygd funksjon i R 4.0: palette.pals (). Dette viser noen innebygde fargepaletter.

 palette.pals () [1] "R3" "R4" "ggplot2" "Okabe-Ito" [5] "Accent" "Dark 2" "Paired" "Pastel 1" [9] "Pastel 2" "Set 1" "Set 2" "Set 3" [13] "Tableau 10" "Classic Tableau" "Polychrome 36" "Alphabet" 

En annen ny funksjon, palett.farger (), gir informasjon om en innebygd palett.

 palett.farger (palett = "Tableau 10") blå oransje rød lysgrønn gul lilla "# 4E79A7" "# F28E2B" "# E15759" "# 76B7B2" "# 59A14F" "# EDC948" "# B07AA1" rosa brun lysegrå " # FF9DA7 "" # 9C755F "" # BAB0AC " 

Hvis du kjører skalapakken show_col () funksjon på resultatene, får du en fin fargedisplay av paletten.

skalaer :: show_col (palette.colors (palette = "Tableau 10"))

Sharon Machlis,

Jeg laget en liten funksjon som kombinerer de to som kan være nyttige for å se på noen av de innebygde palettene i en enkelt kodelinje:

display_built_in_palette <- funksjon (min_palette) {

skalaer :: show_col (palette.colors (palette = min_palette))

}

display_built_in_palette ("Okabe-Ito")

Sharon Machlis,

Ingen av denne koden fungerer i tidligere versjoner av R, siden bare skalaer :: show_col () er tilgjengelig før R 4.0.

Rømmer tegn innenfor strengene

Til slutt, la oss se på en ny funksjon som gjør det lettere å inkludere tegn som vanligvis må rømmes i strenger.

Syntaksen er r "(strengen min her)". Her er et eksempel:

string1 <- r "(" Jeg trenger ikke lenger unnslippe disse "doble anførselstegnene i et sitat," sa de.) "

Denne strengen inkluderer et ikke-rømt anførselstegn inne i et par doble anførselstegn. Hvis jeg viser den strengen, får jeg dette:

 > cat (string1) "Jeg trenger ikke lenger å unnslippe disse" doble sitatene i et sitat, "sa de. 

Jeg kan også skrive ut bokstavelig \ n inne i den nye funksjonen.

 streng2 <- r "(Her er en tilbakeslag n \ n)" katt (streng2) Her er en tilbakeslag n \ n 

Uten det spesielle r "()" funksjon, det \ n blir lest som en linjeskift og vises ikke.

 string3 <- "Her er et tilbakeslag n \ n" cat (string3) Her er et tilbakeslag n 

Før dette i base R, trengte du å unnslippe den omvendte skråstrek med en annen tilbakeslag.

 string4 <- "Vanlig rømt \ n" katt (string4) Vanlig rømt \ n 

Det er ikke så farlig i dette eksemplet, men det kan bli komplisert når du jobber med noe som komplekse regulære uttrykk.

Det er mye mer nytt i R 4.0. Du kan sjekke ut alle detaljene på R-prosjektets nettsted.

For mer informasjon om bruk av Docker med R, sjekk ut rOpenSci Labs 'korte, men utmerkede R Docker-veiledning.

Og for flere R-tips, gå til Do More With R-siden!

$config[zx-auto] not found$config[zx-overlay] not found