Как да стартирате R 4.0 в Docker - и 3 страхотни нови функции на R 4.0

Има някои интересни промени и актуализации в R 4.0. Тук ще разгледам три от тях. Освен това ще ви дам инструкции стъпка по стъпка за инсталиране на R 4.0, така че да не пречи на вашата съществуваща инсталация на R - като стартирате R с Docker.

Docker е платформа за създаване на „контейнери“ - напълно самостоятелни, изолирани среди на вашия компютър. Мислете за тях като за мини система във вашата система. Те включват собствена операционна система и след това всичко, което искате да добавите към това - приложен софтуер, скриптове, данни и др. Контейнерите са полезни за много неща, но тук ще се спра само на едно: тестване на нови версии на софтуера без да прецаквате текущата си локална настройка.

Изпълнението на R 4.0 и най-новата версия за визуализация на RStudio в контейнер на Docker е доста лесно. Ако не искате да следвате заедно с Docker частта на този урок и просто искате да видите какво е новото в R, превъртете надолу до раздела „Три нови функции R 4.0“.

Изпълнете R 4.0 в контейнер на Docker

Ако би искал да ви следват, инсталиране на десктоп Docker на вашата система, ако не вече го имам: Насочете се към //www.docker.com/products/docker-desktop и изтегляне на правилната версия на работния плот на вашия компютър (Windows, Mac или Linux). След това го стартирайте. Трябва да видите икона на кит Docker, работеща някъде във вашата система.

Шарън Маклис,

След това се нуждаем от изображение на Docker за R 4.0. Можете да мислите за изображение на Docker като набор от инструкции за създаване на контейнер с включен специфичен софтуер. Благодарение на Adelmo Filho (учен по данни в Бразилия) и проекта Rocker R Docker, които предоставят някои много полезни изображения на Docker. Модифицирах техните изображения на Docker съвсем леко, за да направя този, който използвах в този урок.

Ето синтаксиса за стартиране на образ на Docker във вашата собствена система за създаване на контейнер.

стартиране на докер --rm -p 8787: 8787 -v / path / to / local / dir: / home / rstudio / newdir потребителско име / docker_image_name: image_tag

dockerе начина, по който трябва да стартирате всяка команда на Docker. runозначава, че искам да стартирам изображение и да създам контейнер от това изображение. В --rmсредствата флаг премахване на контейнера, след като приключи. Не е нужно да включвате --rm; но ако пуснете много контейнери и не ги изтриете, те ще започнат да заемат много дисково пространство. Това -p 8787:8787е необходимо само за изображения, които трябва да се изпълняват на системен порт, което RStudio прави (както и Shiny, ако планирате да го включите някой ден). Командата по-горе посочва порт 8787, който е обичайният RStudio по подразбиране.

Най -vсъздава обем. Спомняте ли си, когато казах, че контейнерите на Docker са самостоятелни и изолирани? Това означава изолиран . По подразбиране контейнерът няма достъп до нищо извън него, а останалата част от вашата система няма достъп до нищо вътре в контейнера. Но ако настроите том, можете да свържете локална папка с папка вътре в контейнера. След това те автоматично се синхронизират. Синтаксисът:

-v път / към / локална / директория: / път / към / контейнер / директория

С RStudio обикновено използвате /home/rstudio/name_of_new_directoryза директорията на контейнера.

В края на docker runкомандата е името на изображението, което искате да стартирате. Моето изображение, както много изображения на Docker, се съхранява в Docker Hub, услуга, създадена от Docker за споделяне на изображения. Както при GitHub, имате достъп до проект, като посочите a username/reponame. В този случай обикновено добавяте :the_tag, което помага, ако има различни версии на едно и също изображение.

По-долу е кодът, който можете да промените, за да стартирате моето изображение с R 4.0 и най-новата версия за визуализация на RStudio във вашата система. Не забравяйте да замените пътя към една от вашите директории с / Users / smachlis / Document / MoreWithR.  Можете да стартирате това в терминален прозорец на Mac или в командния ред на Windows или в прозореца на PowerShell.

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

Когато стартирате тази команда за първи път, Docker ще трябва да изтегли изображението от Docker Hub, така че може да отнеме известно време. След това, освен ако не изтриете локалното копие на изображението, трябва да е много по-бързо.

Сега, когато отворите localhost:8787в браузър, трябва да видите RStudio.

Шарън Маклис,

Потребителското име и паролата по подразбиране са и rstudio, което разбира се би било ужасно, ако пускате това в облака. Но мисля, че е добре на моята локална машина, тъй като обикновено нямам никаква парола на моя обикновен работен плот на RStudio.

Ако проверите версията R в контейнерирания R / RStudio, ще видите, че е версия 4.0. RStudio трябва да е версия 1.3.947, най-новата версия за предварителен преглед по времето, когато тази статия е публикувана за първи път. И двете са различни версии от тези, инсталирани на моята локална машина.

Три нови функции на R 4.0

Така че сега нека разгледаме няколко нови функции на R 4.0. 

Нови низове AsFactors по подразбиране

В кода по-долу създавам проста рамка за данни с информация за четири града и след това проверявам структурата.

Град <- c ("Ню Йорк", "Сан Франциско", "Бостън", "Сиатъл") Щат <- c ("NY", "CA", "MA", "Сиатъл") PopDensity <- c (26403 , 18838, 13841, 7962) плътности <- data.frame (City, State, PopDensity) str (denities) 'data.frame': 4 obs. от 3 променливи: $ City: chr "New York" "San Francisco" "Boston" "Seattle" $ State: chr "NY" "CA" "MA" "Seattle" $ PopDensity: num 26403 18838 13841 7962

Забелязвате ли нещо неочаквано? City и State са символни низове, въпреки че не съм посочил „ stringsAsFactors = FALSE.Да“, най-накрая, по подразбиране R data.frame е stringsAsFactors = FALSE. Ако стартирам същия код в по-стара версия на R, City и State ще бъдат фактори.

Нови цветови палитри и функции

На следващо място, нека да погледнем в нова вградена функция в R 4.0: palette.pals(). Това показва някои вградени цветови палитри.

 palette.pals () [1] "R3" "R4" "ggplot2" "Okabe-Ito" [5] "Accent" "Dark 2" "Paired" "Pastel 1" [9] "Pastel 2" "Set 1" „Комплект 2“ „Комплект 3“ [13] „Таблица 10“ „Класическа таблица“ „Полихром 36“ „Азбука“ 

Друга нова функция, palette.colors()дава информация за вградена палитра.

 palette.colors (palette = "Tableau 10") синьо оранжево червено светлочервено зелено жълто лилаво "# 4E79A7" "# F28E2B" "# E15759" "# 76B7B2" "# 59A14F" "# EDC948" "# B07AA1" розово кафяво светлосиво " # FF9DA7 "" # 9C755F "" # BAB0AC " 

Ако след това стартирате функцията на пакета с везни show_col()върху резултатите, ще получите хубав цветен дисплей на палитрата.

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

Шарън Маклис,

Направих малка функция, комбинираща двете, които биха били полезни за разглеждане на някои от вградените палитри в един ред код:

display_built_in_palette <- функция (my_palette) {

везни :: show_col (palette.colors (palette = my_palette))

}

display_built_in_palette ("Okabe-Ito")

Шарън Маклис,

Нито един от този код не работи в по-ранни версии на R, тъй като scales::show_col()е наличен само преди R 4.0.

Избягване на символи в низове

И накрая, нека разгледаме нова функция, която улеснява включването на символи, които обикновено трябва да се избягват в низове. 

Синтаксисът е r"(my string here)". Ето един пример:

string1 <- r "(" Вече няма нужда да избягвам тези "двойни кавички в кавичка", казаха те.) "

Този низ включва неизбежна кавичка в двойка двойни кавички. Ако покажа този низ, получавам това:

 > cat (string1) "Вече няма нужда да избягвам тези" двойни кавички в кавичка ", казаха те. 

Също така мога да отпечатам литерал \nв новата функция.

 string2 <- r "(Ето обратна наклонена черта n \ n)" cat (string2) Ето обратна наклонена черта n \ n 

Без специалната r"()"функция, която \nсе чете като прекъсване на ред и не се показва.

 string3 <- "Ето обратна наклонена черта n \ n" cat (string3) Ето обратна наклонена черта n 

Преди това в база R трябваше да избягате от тази наклонена черта с втора обратна наклонена черта. 

 string4 <- "Обичайно избягало \\ n" котка (string4) Обичайно избягало \ n 

Това не е голяма работа в този пример, но може да се усложни, когато работите върху нещо като сложни регулярни изрази.

Има много повече нови в R 4.0. Можете да проверите всички подробности на уебсайта на проекта R. 

За повече информация относно използването на Docker с R, вижте краткия, но отличен урок за R Docker на rOpenSci Labs.

И за повече съвети за R, отидете на страницата Направете повече с R!