Розділ 1 Вступ до курсу


1.1 Що таке R?

R є поширеною мовою програмування для роботи з даними (DataScience) та машинного навчання (Machine Learning). Але Ви можете скористатися засобами R і для простіших задач: обчислення, візуалізація даних.

Синтаксис мови програмування R є досить простим для вивчення та використання, а широкий набір готових пакетів дозволяє використати готові розробки для виіршення широкого спектру задач від статистичних обчислень до навчання нейронних мереж для розпізнавання/класифікації зображень.

Важливо відмітити, що мова програмування R є безкоштовною (free) і має відкритий код (open source).

R має ряд корисних властивостей, серед яких варто виділити:

  • Візуалізація даних. Побудова різноманітих видів графіків, робота з мапами, широкий спектр бібліотек та налаштувань до них.

  • Повторне використання коду. На відміну від електронних таблиць, що мають обмеження на кількість спостережень (наприклад, MS Excel), R дозволяє працювати з великими масивами даних та перезапускати обчислення у потрібний момент не створюючи додаткових копій даних.

  • Машинне навчання. R дозволяє використати для побудови, навчання та тестування моделей, а також оптимізації гіперпараметрів та відбору факторів дуже велику кількість алгоритмів. Існують також спеціальні пакети, що об’єднують у собі усі описані функції та алгоритми, наприклад, caret та mlr.

  • Автоматизація. Написаний код та проекти можна перетворити у готові до публікації та впровадження продукти (deployment) або використовувати напрацьовані алгоритми для швидкого вирішення схожих задач (pipeline).

Також можна виділити досить корисні фічі Розробка веб-застосунків та Звітність, адже, використовуючи спеціальні бібліотеки (shiny, shinydashboard, flexdashboard, rmarkdown, knitr тощо), результати виконаної роботи можна “оживити” або сформувати “на льоту” готові до презентації документи.


1.2 Історія створення R

Мова програмування R виникла як продовження статистичної мови S. Назва мови S була обрана аналогічно до C. Створена S була у 1976 році компанією Bell Labs. Мова S мала кілька версій і широко використовувалася для комерційного програмування. Найпотужнішою була версія S-Plus, що мала реалізацію за досить немалу кількість функцій під Windows та Unix-платформи, що стримувало її розвиток. Саме в цей момент розпочинається історія R.

Влітку 1993 року двоє молодих новозеландських вчених анонсували свлю нову розробку, яку вони назвали R (є інформація, що буква “R” була обрана тому, що вона стоїть перед “S” у латинському алфавіті, тут є аналогія з мовою “C”, якій передувала мова “B”) (А.Б. Шипунов, Е.М. Балдин, П.А. Волкова, А.И. Коробейников, С.А. Назарова, С.В. Петров, В.Г. Суфиянов. 2012). За задумом авторів (Robert Gentelman та Ross Ihaka) це повинна була бути нова реалізація мови S, що відрізнялася від S-Plus деякими деталями, наприклад, роботою з локальними та глобальними змінними, пам’яттю тощо. Фактично було створено нову мову, що відгалуджується від S.

Проект з самого початку розвивався досить повільно, але коли у команди розробників R з’явлися ресурси, в тому числі зручна системи створення розширень (пакетів), все більше аналітиків, статистиків, вчених, програмістів почало переходити з S-Plus на R. Коли були усунуті проблеми роботи з пам’яттю перших версій R, на цю мову почали переходити користувачі інших статистичних пакетів (SAS, Stata, SYSSTAT).

Кількість книг та публікацій у мережі Інтернет по роботі з R постійно зростає разом із зацікавленням молодих і вже досвідчених спеціалістів зі сфери ІТ темою науки про дані, машинним навчанням, аналітикою для бізнесу, охорони здоров’я тощо.


1.3 Основи роботи з R

1.3.1 R Project

R є безкоштовним програмним забезпеченням, що розповсюджується за умовами GNU General Public License. Код, написаний на R компілюється та запускається на різних платформах: UNIX, Windows, MacOS (R Core Team 2020).

1.3.1.1 Завантаження та інсталяція R

Для завантаження актуальної версії R варто перейти на сайт проекту https://cran.r-project.org/.

На сайті обираємо завантаження R для потрібної операційної системи. У межах курсу ми вокристовуємо ОС Windows, проте на синтаксис мови програмування та процес написання коду це не впливає:

Завантаження R. Вибір ОС

Рис. 1.1: Завантаження R. Вибір ОС

У наступному вікні клікаємо на install R for the first time:

Завантаження R. Перша інсталяція

Рис. 1.2: Завантаження R. Перша інсталяція

Далі обираємо Download R 4.X.X for Windows, де 4.X.X версія R, яка може бути відмінною на момент вивчення курсу:

Завантаження R. Завантаження версії для ОС

Рис. 1.3: Завантаження R. Завантаження версії для ОС

Після завантаження файлу інсталяції потрібно його запустити. Зазвичай завантажений файл можна побачити у лівому нижному кутку браузера або у розділі “Завантаження” Вашого браузера. Наприклад, у браузері Google Chrome знайти цей пункт меню так:

Завантаження R. Розділ "Завантаження" у Google Chrome

Рис. 1.4: Завантаження R. Розділ “Завантаження” у Google Chrome

Процес інсталяції ПЗ не відрізняється від інших програм і детального опису не потребує. Основним тут є запам’ятати шлях встановлення проекту або “відмітити галочками” пункти щодо публікації на Робочий стіл чи у меню швидкого доступу ярликів для того, щоб знайти файли запуску.


1.3.1.2 Перший запуск R GUI

За замовчуванням під час інсталяції пропонується шлях C:\Program Files\R\R-4.X.X.

Для запуску R GUI (стандартного графічного інтерфейсу для роботи з R) потрібно зайти у папку bin\x64 (або i386, якщо у Вас 32-х розрядна ОС) та запустити файл Rgui.exe.

Вигляд вікна R GUI зображено нижче:

Вигляд головного вікна RGui

Рис. 1.5: Вигляд головного вікна RGui

GUI (Graphical User Interface) - набір візуальних компонентів для інтерактивної взаємодії користувача з програмним забезпеченням.

У вікні R Console можна вводити команди/інструкції R, що будуть виконуватися:

Результати виконання команд зберігаються у памяті програми і можуть бути використані у наступних блоках коду:

Вигляд консолі для команд RGui

Рис. 1.6: Вигляд консолі для команд RGui

Середовище R GUI має широкий спектр функцій і дозволяє написати будь-якого рівня складності проекти на R, проте він є лише базовою графічною обгорткою для R. Розглянемо інші зручніші середовища для написання R-коду.


1.3.1.3 Поняття робочого простору

У процесі виконання коду створені об’єкти/змінні та функції зберігаються у поточній сесії. У R є можливість переглянути список збережних елментів, видалити усі або окремі, зберегти стан поточної сесії диск та завантажити його пізніше, щоб не проходти усі етапи виконання коду повторно (інколи дуже складний код може виконувати досить довго і збереження проміжних результатів може бути хорошим рішенням).

Для прикладу створимо дві змінні var1, var2 та виведемо на консоль їх значення:

var1 <- 10
var2 <- sqrt(15)
var1
## [1] 10
var2
## [1] 3.872983

Для того аби переглянути список змінних у поточній сесії варто скористатися ls():

ls()
## [1] "var1" "var2"

Якщо виникає потреба очистити робочий простір і звільними пам’ять використовується команда rm(). Так, щоб очистити усі змінні можна скористатися rm(list = ls()), якщо ж Ви хочете видалити якусь одну/дві змінних, то просто вкажіть імена:

rm(list = c("var1"))
ls()
## [1] "var2"

Таким чином, після виконання коду вище, залишиться лише змінна var2.

Зберігання образу (image) робочого простору на диск здыйснюэться за допомогою команди save.image("шлях до файлу.RData"), а його зчитування за допомогою load("шлях до файлу.RData"):

# Clear workspace
rm(list = ls())

# declare data
a <- 10
b <- a + 15

# Save image to file
save.image("tmp.RData")
# Clear workspace
rm(list = ls())

# load image to file
load("tmp.RData")

print(a)
## [1] 10
print(b)
## [1] 25

У прикладі 2 не створюєть жодного параметра, проте вони збережні у файлі сесії.

Для того аби зберегти та зчитати окремий об’єкт, а не всі елементи сесії у R э спеціальний формат .RDS, який реалізовується методами saveRDS(об'єкт, file="шлях_файлу.rds") та readRDS(file="шлях_файлу.rds").


1.3.1.4 Поняття робочого каталогу

Робота в будь-якому середовищі передбачає зв’язок із поточним каталогом, відносно якого будуються шляхи до файлів. Звичайно можна писати завжди повний шлях до файла, проте такий підхід є досить негнучким і під час перенесення коду між ПК створює чимало проблем розробникам.

Для визначення базового каталогу R в поточній сесії використовують команду getwd(). Якщо Ви користуєтеся RStudio та створили проект, то цей каталог буде відповідати повному шляху до папки проекту:

getwd()
## [1] "E:/Repos/Season 2022/r-intro-book-ua"

Для того аби змінити поточний робочий каталог використовують команду setwd(шлях). Після запуску цієї команди функцій getwd() буде вказутивати уже на нову адресу/шлях.

Варто знати та вміти будувати абсолютні та відносні шляхи до каталогів та файлів, ці знання корисні для роботи з усіма мовами програмування та більшістю ПЗ для роботи з даними.

Для запису шляху у ОС Windows можна скористатися 2-ма способами:

  • / - слеш, записується як один знак;
  • \\ - бекслеш, записується як два знаки.

У прикладі нижче обидва шляхи ведуть до тієї ж папки (drive - буква диска):

setwd("drive:/folder1/folder2/")
setwd("drive:\\folder1\\folder2\\")

Для перегляду інформації про наявні каталоги та файли у поточній робочій папці можна скористатися командою dir() або list.files():

dir()
##  [1] "_book"                  "_bookdown.yml"          "_bookdown_files"       
##  [4] "_output.yml"            "04-chapter4.Rmd"        "05-chapter5.Rmd"       
##  [7] "06-chapter6.Rmd"        "07-chapter7.Rmd"        "09-chapter9.Rmd"       
## [10] "10-references.Rmd"      "book.bib"               "chapter01.Rmd"         
## [13] "chapter01_files"        "chapter02.Rmd"          "chapter03.Rmd"         
## [16] "css"                    "favicon.ico"            "images"                
## [19] "inc"                    "index.Rmd"              "LICENSE"               
## [22] "packages.bib"           "preamble.tex"           "r-intro-book-ua.rds"   
## [25] "R-Intro-Book-UA.Rproj"  "README.md"              "render_commands"       
## [28] "render29c058b65373.rds" "render3dd033c94c1a.rds" "tmp.RData"
list.files()
##  [1] "_book"                  "_bookdown.yml"          "_bookdown_files"       
##  [4] "_output.yml"            "04-chapter4.Rmd"        "05-chapter5.Rmd"       
##  [7] "06-chapter6.Rmd"        "07-chapter7.Rmd"        "09-chapter9.Rmd"       
## [10] "10-references.Rmd"      "book.bib"               "chapter01.Rmd"         
## [13] "chapter01_files"        "chapter02.Rmd"          "chapter03.Rmd"         
## [16] "css"                    "favicon.ico"            "images"                
## [19] "inc"                    "index.Rmd"              "LICENSE"               
## [22] "packages.bib"           "preamble.tex"           "r-intro-book-ua.rds"   
## [25] "R-Intro-Book-UA.Rproj"  "README.md"              "render_commands"       
## [28] "render29c058b65373.rds" "render3dd033c94c1a.rds" "tmp.RData"

1.3.1.5 Допомога (help/?)

Для отримання швидкої довідки в R варто скористатися функціє help(назва_об'єкта_або_функції) або ?назва_об'єкта_або_функції:

# Get help for intersect() function
help(intersect)

Якщо є потреба отримати інформацію про пакет скористайтеся:

help(package = "stats")

1.3.2 Робота з R Studio

1.3.2.1 Завантаження та інсталяція RStudio Desktop

RStudio - це інтегроване середовище розробки для R. Воно включає у себе консоль, підсвічування синтаксису (підказки), прямий запуск коду, інструменти для візуалізації графіків, html-коду, історію виконаних команд, відлагоджування коду, управління робочими просторами, підтримка різних видів розмітки та багато іншого. RStudio має версію з відкритим кодом та комерційну версію для Windows, Linux та Mac, а також веб-версію для серверів на Linux RStudio Server та RStudio Server Pro (RStudio Official Website 2021).

IDE (integrated development environment) - комплексне програмне рішення для розробки програмного забезпечення. Зазвичай, складається з редактора початкового коду, інструментів для автоматизації складання та відлагодження програм. Більшість сучасних середовищ розробки мають можливість автодоповнення коду. Wikipedia

Завантажити продукти можна з сайту https://rstudio.com. Щоб знайти середовище, яке ми будемо використовувати під час вивчення курсу варто виконати наступні кроки:

  1. У головному меню сайту обрати Products > RStudio.
  2. Знаходимо на сторінці кнопку для завантаження програми RStudio Desktop версії Open Source та натискаємо DOWNLOAD RSTUDIO DESKTOP:
Вибір версії RStudio Desktop

Рис. 1.7: Вибір версії RStudio Desktop

  1. Далі обираємо завантаження безкоштовної версії RStudio Desktop з наданого переліку:
Завантаження RStudio Desktop

Рис. 1.8: Завантаження RStudio Desktop

Після завантаження запускаємо інсталятор RStudio. Особливих кроків у цьому процесі немає.

Після запуску IDE RStudio зазвичай складається з 3-х або 4-х блоків: * Файл, з яким працювали останнім (зліва зверху). * Консоль для введення коду та виведення результатів (зліва знизу). * Змінні середовища (Environment) (справа зверху) + Історія команд (History), Зєднання з зовнішніми ресурсами даних, наприклад, бази даних (Connections), навчальна інструкція (Tutorial). * Файли каталогу або проекту (Files), Інстальовані пакети (Packages), Допомога (Help), Візуалізація результатів (Plots, Viewer).

Головне вікно RStudio Desktop

Рис. 1.9: Головне вікно RStudio Desktop

Для першої демонстрації роботи виконаємо у консолі 2 рядки коду:
Приклад написання коду в RStudio Desktop

Рис. 1.10: Приклад написання коду в RStudio Desktop

Перший рядок з кодом data <- c(3,7,1,6,3,4,5,4,2) створює у пам’яті колекцію чисел. Зверніть увагу, що у блоці Environments відобраюаться усі змінні, що уснують у поточному робочому просторі (про це буде далі).

Другий рядок plot(data, type="l") дозволяє побудувати простий лінійний графік (type="l" - linear, "p" - point, help(plot) для деталей). Графіки, що “промальовуються” як картинки выдображаються у блоці Plots. Якщо ж графік має більш складну візуалізацію з інтерактивними елементами, що використовують уже засоби html/css/js, то він буде відображений у блоці View.

Якщо перемкнутися на вкладку History, то ми побачимо перелік раніше виконаних команд.

Для швидкого “гортання” уже виконаних раніше команд на консолі (Console) можна скористатися клавішами Up/Down на клавіатурі:
Arrow Keys


1.3.2.2 Створення першого проекту в RStudio

На відміну від R Gui в RStudio реалізовано концепцію проектів, що дозволяє організувати код та поєднати різні його частини у межах певного рішення.

Створимо наш перший проект.

Для початку оберемо з верхнього меню пункт File > New Project. У вікні вибору способу створення проекту клікаємо New Directory. Такий спосіб передбачає, що жодного файлу проекту поки не існує або ми пізніше туди скопіюємо уже готовий код.

RStudio Desktop. Новий проект

Рис. 1.11: RStudio Desktop. Новий проект

На наступному кроці обираємо New Project:

RStudio Desktop. Новий проект. Тип проекту

Рис. 1.12: RStudio Desktop. Новий проект. Тип проекту

Після кліку на Create Project буде створено папку за попередньо обраним шляхом. Для запуску проекту або швидкого перемикання між проектами можна скористатися як пунктами головного меню, так і підменю проектів справа. Також відкрити проект можна запуском файлу *.Rproj у провіднику Windows.

RStudio Desktop. Новий проект

Рис. 1.13: RStudio Desktop. Новий проект

Щоб додати новий файл з кодом R потрібно обрати з головного меню File > New file > R Script або скористатися командою Ctrl+Shift+N. Новий файл буде створено з назвою Untitled[X], тому рекомендую одразу його зберегти, наприклад, як TestCode.R

Для першого проекту розвяжемо наступну задачу:

Написати програму, що генерує вектор з 20-ти випадкових чисел у межах [1;5], обчислює середнє та суму чисел, а також виводить гістограму частоти кожного значення (скільки разів дане число повторюється у векторі).

Код для генерації 20-ти випадкових чесел у діапазоні [1;5] матиме наступний вигляд:

vtr <- sample(1:5, 20, replace=TRUE)
vtr
##  [1] 3 4 5 1 3 4 5 3 3 4 2 4 5 5 4 5 2 3 5 1

Результати виконання на Вашому ПК будуть іншими, адже псевдогенератор випадкових чисел буде брати іншу “точку відліку” для генерування чисел. Рекомендую перегляду функцію set.seed(точка відліку - число).

P.S. Також зустрічав у мережі інформацію, що робота set.seed() для R у 4+ версії може відрізнятися від 3+. Після перевірки інформації оновлю даний текст.

Обчислення та виведення на консоль інформації про суму та середнє значення:

vtr_sum <- sum(vtr)
vtr_mean <- mean(vtr)

print(paste0("Sum: ", vtr_sum))
## [1] "Sum: 71"
print(paste0("Mean: ", vtr_mean))
## [1] "Mean: 3.55"

Виведемо гістограму:

hist(vtr, breaks = 5)
Приклад візуалізації гістрограми в R

Рис. 1.14: Приклад візуалізації гістрограми в R

Примітка. Детальніше про параметри функції hist() можна почитати тут: https://www.rdocumentation.org/packages/graphics/versions/3.6.2/topics/hist.

Орієнтовний вигляд вікна RStudio після викоання усіх описаних вище операцій матиме настпуний вигляд:

RStudio Desktop. Перегляд змінних

Рис. 1.15: RStudio Desktop. Перегляд змінних

Варто звернути увагу на виділений блок Environment, де можна переглянути усі доступні змінні, що є на даний момент у пам'яті. До цих параметрів можна звертатися у коді чи з консолі у будь, який момент. Детальну інформацію про робоче середовище розглянуто нижче.


1.3.3 Робота з Jupyter Notebook

Ноутбуки стали зручним та поширеним інструментом для аналізу даних, а також послідовного викладення матеріалів чи результатів дослідження. Перевагою такого інструменту є перемішування коду, результатів його виконання та іншого текстового наповнення, що дозволяє сформувати “на льоту” готові до читання документи.

_*Примітка. Лекційні матеріали даного курсу виконані саме у ноутбуках._

Використання ноутбуків у навчальному процесі дозволяє описати не лише теоретичний матеріал, але приклади коду, що будуть виконувати безпосередньо під час ознайомлення з лекцією. Також слухач курсу може відредагувати наявний код та перевірити результати його виконання.

Розгялнемо процес інсталяції та запуску Anaconda (середовище з відкритим кодом для вирішення задач Data Science) та Jupyter Notebook на ПК.

Для встановлення середовища Anaconda потрібно перейти на сайт проекту та завантажити індивідуальну версію продукту: https://www.anaconda.com/products/individual (Anaconda. The World’s Most Popular Data Science Platform 2021).

_*Примітка. Усі операції у даному курсі виконуються під операційну систему Windows 10 Education_.

Процес інсталяції середовища Anaconda не відрізняється від стандарного покрокового вставнолення програм у Windows.

Після запуску Anaconda Navigator для початку потрібно створити нове середовище та налаштувати роботу R:

Anaconda

Для початку потрібно перейти на вкладку Environments та натиснути Create:

Anaconda. Головне вікно

Рис. 1.16: Anaconda. Головне вікно

У вікні, що відкрилося потрібно відмітити [x] вставновлення інструментів для роботи з R:

Anaconda. Створення нового середовища на основі R

Рис. 1.17: Anaconda. Створення нового середовища на основі R

Після встановлення R-інструментів оптрібно переключитися на вкладку Home та робочий простір:

Anaconda. Зміна середовища

Рис. 1.18: Anaconda. Зміна середовища

Після завантаження робочого простору оберіть Launch для запуску Jupyter Notebook з переліку встановлених засобів. Jupyter Notebook буде запущено у браузері за замовчеванням Вашого ПК. Відкрити ноутбук можна обравши потрібний файл, а створити новий у меню справа New > Notebook > R:

Jupyter Notebook. Створення нового ноутбука

Рис. 1.19: Jupyter Notebook. Створення нового ноутбука


1.3.4 Огляд додаткових IDE та сервісів для роботи з R

Окрім середовищ описаних вище існує ряд досить цікавих інструментів, що роблять досить зручною роботу з R-кодом. Розглянемо ці інструменти.

Visual Studio Code - безкоштовний редактор коду від Microsoft, орієнтовний на велику кількість мов програмування та фреймворків (Visual Studio Code 2021). Серед інших іструментів у VS Code доступні також розширення для роботи з R:

Visual Studio Code. Інсталяція RTools

Рис. 1.20: Visual Studio Code. Інсталяція RTools

Visual Studio Community Edition - безкоштовне середовище розробки від компаній Microsoft. VS створено з самого початку для розробки під платформу .NET та мови програмування C#, VB.NET, F# тощо, але з часом отримало багато розширень, що дозволяють у тому числі, працювати і з проектами в R (Visual Studio Community Edition 2021).

Google Collab - онлайн сервіс для роботи з ноутбуками для Data Science від компанії Google (Google Colaboratory 2021):

Google Collab

Рис. 1.21: Google Collab

Примітка. Код у прикладі вище написаний на Python.

kaggle.com - сервіс для змагань з Data Science та Machine Learning. Окрім переліку змагань, наборів даних сервіс має досить зручні ноутбуки.

Kaggle.com

Рис. 1.22: Kaggle.com

Загалом сервісів та середовищ для розробки в R існує досить багато і їх кількість зростає, але це не впливає на принципи написання коду та роботу з даними.


1.4 Основи роботи з пакетами в R

1.4.1 Команди для роботи з пакетами

Своєю популярністю R завдячує, у тому числі, і можливості швидко реалізувати досить складні дослідження за допомогою наборів уже готових функції. Такі функції обєднуються у пакети та публікуються вченими, досліджниками та розробниками зі всього світу.

Пакети в R - організовані набори методів та класів для виконання вузького набору задач під час програмування на R. Вони містять як функції так і опис способів їх використання, а чтакож дані для відтворення прикладів коду.

Пакети можуть бути завантажені з офіційного сайту проекту cran.r-project.org / (R Core Team 2020) або інших джерел (dev-версії є доступні на github). Завантаження пакетів у R можна здійснювати як з локального диска, так і з серверів у мережі інтернет.

Для встановлення пакету використовується команда install.packages():

install.packages("fun")

Для підключення пакету та його використання варто скористатися library():

packageDescription("fun")
help(package = "fun")

Дуже рекомендую почитати детальніше про пакети у статті на DataCamp: R Packages: A Beginner’s Guide.


1.4.2 Робота з пакетами в RStudio

Робота з пакетами в RStudio організована досить зручно і дозволяє швидко переглянути інформацію про пакет та функції, які він дозволяє використати.

Для інсталяції та оновлення пакетів можна скористатися меню Tools:

RStudio Desktop. Меню інсталяції пакетів

Рис. 1.23: RStudio Desktop. Меню інсталяції пакетів

Після вибору Install Packages... відкриється вікно, де можна обрати як джерело інсталяції пакету так і сам пакет з переліку, ввівши кілька перших букв його назви:

RStudio Desktop. Вибір пакету для інсталяції

Рис. 1.24: RStudio Desktop. Вибір пакету для інсталяції

RStudio дозволяє також переглянути інстальовані пакети/бібліотеки, розроблені іншими користувачами та завантажені у пам’ять (“галочка” навпроти назви пакету):

RStudio Desktop. Перегляд інстальованих пакетів

Рис. 1.25: RStudio Desktop. Перегляд інстальованих пакетів

Доступ до функцій та інших елементів пакету можна здійснювати використавши запис назва_пакету::назва_функції() без підключення бібліотеки за допомогою library():

RStudio Desktop. Приклад використання пакету `fun`

Рис. 1.26: RStudio Desktop. Приклад використання пакету fun

Користувачі можуть не тільки завантажувати існуючі пакети,але істворювати власні та роботи їх доступними для дослідників зі всього світу.


References

Anaconda. The World’s Most Popular Data Science Platform. 2021. 206 379 Broadway Ave., Suite 310 New York, NY 10013, USA: Anaconda Inc. https://www.anaconda.com/.
Google Colaboratory. 2021. Google LLC. https://colab.research.google.com/.
R Core Team. 2020. R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing. https://www.R-project.org/.
RStudio Official Website. 2021. 250 Northern Ave, Boston, MA 02210: RStudio, PBC. https://rstudio.com/.
Visual Studio Code. 2021. Microsoft. https://code.visualstudio.com/.
Visual Studio Community Edition. 2021. Microsoft. https://visualstudio.microsoft.com/.
А.Б. Шипунов, Е.М. Балдин, П.А. Волкова, А.И. Коробейников, С.А. Назарова, С.В. Петров, В.Г. Суфиянов. 2012. Наглядная Статистика. Используем r! Москва, Росія: ДМК Пресс.