Programování

Jak spustit R 4.0 v Dockeru - a 3 skvělé nové funkce R 4.0

V R 4.0 jsou některé zajímavé změny a aktualizace. Zde se podívám na tři z nich. Navíc vám poskytnu podrobné pokyny k instalaci R 4.0, aby nezasahovalo do vaší stávající instalace R - spuštěním R s Dockerem.

Docker je platforma pro vytváření „kontejnerů“ - zcela samostatných, izolovaných prostředí ve vašem počítači. Přemýšlejte o nich jako o mini systému ve vašem systému. Zahrnují svůj vlastní operační systém a pak vše, co k tomu chcete přidat - aplikační software, skripty, data atd. Kontejnery jsou užitečné pro spoustu věcí, ale zde se zaměřím jen na jednu: testování nových verzí softwaru aniž byste pokazili vaše aktuální místní nastavení.

Spuštění R 4.0 a nejnovější verze RStudio v kontejneru Docker je docela snadné. Pokud nechcete sledovat část tohoto tutoriálu týkající se Dockeru a chcete jen vidět, co je nového v R, přejděte dolů do sekce „Tři nové funkce R 4.0“.

Spusťte R 4.0 v kontejneru Docker

jestli ty bych Chcete-li pokračovat, nainstalujte do svého počítače Docker, pokud jej ještě nemáte: Přejděte na //www.docker.com/products/docker-desktop a stáhněte si správnou verzi počítače pro svůj počítač (Windows, Mac nebo Linux). Poté jej spusťte. Někde ve vašem systému by měla být vidět ikona Dockeru s velrybami.

Sharon Machlis,

Dále potřebujeme image Dockeru pro R 4.0. Obraz Dockeru si můžete představit jako sadu pokynů k vytvoření kontejneru s konkrétním softwarem. Díky Adelmo Filho (datový vědec v Brazílii) a projektu Rocker R Docker, kteří poskytují některé velmi užitečné obrázky Dockeru. Upravil jsem jejich Docker obrázky jen mírně, aby se ten, který jsem použil v tomto tutoriálu.

Zde je syntaxe běh image Dockeru ve vašem vlastním systému k vytvoření kontejneru.

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

přístavní dělník je to, jak musíte spustit libovolný příkaz Dockeru. běh znamená, že chci spustit obrázek a vytvořit z tohoto obrázku kontejner. The --rm vlajka znamená odstranit kontejner, když je hotový. Vy ne mít zahrnout --rm; ale pokud spustíte hodně kontejnerů a neodstraníte je, začnou zabírat hodně místa na disku. The -p 8787: 8787 je potřeba pouze pro obrázky, které musí běžet na systémovém portu, což RStudio dělá (stejně jako Shiny, pokud to někdy plánujete zahrnout). Výše uvedený příkaz určuje port 8787, což je obvyklé výchozí nastavení RStudia.

The -proti vytvoří svazek. Pamatujete si, když jsem řekl, že kontejnery Dockeru jsou samostatné a izolované? To znamená izolovaný. Ve výchozím nastavení nemá kontejner přístup cokoliv mimo něj a zbytek vašeho systému nemá přístup k ničemu uvnitř kontejner. Pokud ale nastavíte svazek, můžete propojit místní složku se složkou uvnitř kontejneru. Poté se automaticky synchronizují. Syntaxe:

-v cesta / k / místní / adresář: / cesta / k / kontejner / adresář

S RStudio obvykle používáte / home / rstudio / name_of_new_directory pro adresář kontejneru.

Na konci docker run příkaz je název obrázku, který chcete spustit. Můj obrázek, stejně jako mnoho obrázků Dockeru, je uložen v Docker Hubu, službě nastavené společností Docker pro sdílení obrázků. Stejně jako u GitHubu přistupujete k projektu zadáním a uživatelské jméno / jméno. V tomto případě také obvykle přidáte : the_tag, což pomáhá, pokud existují různé verze stejného obrázku.

Níže je uveden kód, který můžete upravit tak, aby běžel můj obraz s R 4.0 a nejnovější verzí náhledu RStudio ve vašem systému. Nezapomeňte nahradit cestu k jedné z vaše adresáře pro / Users / smachlis / Document / MoreWithR. Můžete to spustit v okně terminálu Mac nebo v příkazovém řádku Windows nebo v okně PowerShell.

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

Když spustíte tento příkaz poprvé, Docker si bude muset stáhnout obrázek z Docker Hubu, takže to může chvíli trvat. Poté, pokud neodstraníte místní kopii obrázku, by to mělo být mnohem rychlejší.

Nyní, když otevřete localhost: 8787 v prohlížeči byste měli vidět RStudio.

Sharon Machlis,

Výchozí uživatelské jméno a heslo jsou rstudio, což by samozřejmě bylo hrozné, pokud byste to spouštěli v cloudu. Ale myslím, že na mém místním stroji je to v pořádku, protože to normálně nemám žádný heslo na mé běžné ploše RStudio.

Pokud zkontrolujete verzi R ve svém kontejnerovém R / RStudiu, uvidíte, že jde o verzi 4.0. RStudio by mělo mít verzi 1.3.947, nejnovější verzi náhledu v době, kdy byl tento článek poprvé publikován. Jedná se o obě odlišné verze od verzí nainstalovaných na mém místním počítači.

Tři nové funkce R 4.0

Pojďme se tedy podívat na několik nových funkcí R 4.0.

Nové řetězce stringsAsFactors výchozí

V níže uvedeném kódu vytvářím jednoduchý datový rámec s informacemi o čtyřech městech a poté kontroluji strukturu.

 Město <- c ("New York", "San Francisco", "Boston", "Seattle") Stát <- c ("NY", "CA", "MA", "Seattle") PopDensity <- c (26403 , 18838, 13841, 7962) densities <- data.frame (City, State, PopDensity) str (densities) 'data.frame': 4 obs. ze 3 proměnných: $ Město: chr "New York" "San Francisco" "Boston" "Seattle" $ Stát: chr "NY" "CA" "MA" "Seattle" $ PopDensity: num 26403 18838 13841 7962 

Všimli jste si něčeho neočekávaného? Město a stát jsou řetězce znaků, i když jsem to nespecifikoval stringsAsFactors = FALSE. Ano, konečně je výchozí hodnota R data.frame stringsAsFactors = FALSE. Pokud spustím stejný kód ve starší verzi R, budou City a State faktory.

Nové barevné palety a funkce

Dále se podívejme na novou integrovanou funkci v R 4.0: palette.pals (). To ukazuje některé vestavěné palety barev.

 palette.pals () [1] "R3" "R4" "ggplot2" "Okabe-Ito" [5] "Accent" "Dark 2" "Spárované" "Pastel 1" [9] "Pastel 2" "Sada 1" "Sada 2" "Sada 3" [13] "Tableau 10" "Klasické tablo" "Polychrom 36" "Abeceda" 

Další nová funkce, palette.colors (), poskytuje informace o integrované paletě.

 palette.colors (palette = "Tableau 10") modrá oranžová červená světle zelená zelená žlutá fialová "# 4E79A7" "# F28E2B" "# E15759" "# 76B7B2" "# 59A14F" "# EDC948" "# B07AA1" růžová hnědá světle šedá " # FF9DA7 "" # 9C755F "" # BAB0AC " 

Pokud pak spustíte balíček váhy show_col () funkce na výsledcích získáte pěkné barevné zobrazení palety.

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

Sharon Machlis,

Vytvořil jsem malou funkci kombinující dvě, které by mohly být užitečné pro prohlížení některých vestavěných palet v jednom řádku kódu:

display_built_in_palette <- funkce (moje_paleta) {

scales :: show_col (palette.colors (palette = my_palette))

}

display_built_in_palette ("Okabe-Ito")

Sharon Machlis,

Žádný z těchto kódů nefunguje v dřívějších verzích R, protože pouze váhy :: show_col () je k dispozici před R 4.0.

Unikající znaky v řetězcích

Na závěr se podívejme na novou funkci, která usnadňuje zahrnutí znaků, které je obvykle nutné v řetězcích uvést do mezer.

Syntaxe je r "(můj řetězec zde)". Zde je jeden příklad:

string1 <- r "(" Už nemusím unikat těmto "dvojitým uvozovkám uvnitř nabídky," řekli.) "

Tento řetězec obsahuje uvozovky bez uvozovek uvnitř dvojitých uvozovek. Pokud zobrazím tento řetězec, dostanu toto:

 > cat (string1) „Už nemusím unikat těmto„ dvojitým uvozovkám uvnitř nabídky, “řekli. 

Mohu také vytisknout literál \ n uvnitř nové funkce.

 string2 <- r "(Zde je zpětné lomítko n \ n)" kočka (řetězec2) Zde je zpětné lomítko n \ n 

Bez zvláštního r „()“ funkce, to \ n se čte jako zalomení řádku a nezobrazuje se.

 string3 <- "Zde je zpětné lomítko n \ n" kočka (string3) Zde je zpětné lomítko n 

Před tímto v základně R jste museli uniknout tomuto zpětnému lomítku s druhým zpětným lomítkem.

 string4 <- "Obvyklá uniklá \ n" kočka (řetězec4) Obvyklá uniklá \ n 

V tomto příkladu to není velký problém, ale může se to zkomplikovat, když pracujete na něčem jako složité regulární výrazy.

V R 4.0 je mnohem více nových. Můžete si prohlédnout všechny podrobnosti na webových stránkách projektu R.

Další informace o používání Dockeru s R najdete v krátkém, ale skvělém výukovém programu R Docker rOpenSci Labs.

A další tipy R najdete na stránce Udělejte více s R!

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