3  Вcтановлення та налаштування R

Автор

Юрій Клебан

Опубліковано

3/18/23

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Note

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

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

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

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

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

3.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 variables
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").

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

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

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

getwd()
[1] "E:/Repositories/2023/intro-to-r-source"

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

Important

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

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

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

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

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

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

dir()
 [1] "_language-ua.yml"            "_quarto.yml"                
 [3] "00-intro.html"               "00-intro.qmd"               
 [5] "01-what-is-r.html"           "01-what-is-r.qmd"           
 [7] "02-r-history.html"           "02-r-history.qmd"           
 [9] "03-r-environment.qmd"        "03-r-environment.rmarkdown" 
[11] "03-r-environment_files"      "04-r-help.qmd"              
[13] "05-r-packages.qmd"           "06-r-input-output.qmd"      
[15] "07-r-variables.qmd"          "08-r-basic-types.qmd"       
[17] "09-r-operators.qmd"          "10-r-conditions-if-else.qmd"
[19] "11-r-loops.qmd"              "12-userful-math.qmd"        
[21] "13-r-functions.qmd"          "14-r-vectors.ipynb"         
[23] "15-r-matrices.ipynb"         "16-r-factors.ipynb"         
[25] "17-r-data-frames.ipynb"      "18-r-lists.ipynb"           
[27] "19-r-apply-functions.ipynb"  "commands"                   
[29] "css"                         "demo.qmd"                   
[31] "docs"                        "identity"                   
[33] "img"                         "index.html"                 
[35] "index.log"                   "index.qmd"                  
[37] "index.tex"                   "index_files"                
[39] "intro-to-r-source.Rproj"     "references.bib"             
[41] "references.qmd"              "site_libs"                  
[43] "solved-tasks.qmd"            "summary.qmd"                
[45] "tasks.qmd"                   "tmp.RData"                  
[47] "Untitled.ipynb"             
list.files()
 [1] "_language-ua.yml"            "_quarto.yml"                
 [3] "00-intro.html"               "00-intro.qmd"               
 [5] "01-what-is-r.html"           "01-what-is-r.qmd"           
 [7] "02-r-history.html"           "02-r-history.qmd"           
 [9] "03-r-environment.qmd"        "03-r-environment.rmarkdown" 
[11] "03-r-environment_files"      "04-r-help.qmd"              
[13] "05-r-packages.qmd"           "06-r-input-output.qmd"      
[15] "07-r-variables.qmd"          "08-r-basic-types.qmd"       
[17] "09-r-operators.qmd"          "10-r-conditions-if-else.qmd"
[19] "11-r-loops.qmd"              "12-userful-math.qmd"        
[21] "13-r-functions.qmd"          "14-r-vectors.ipynb"         
[23] "15-r-matrices.ipynb"         "16-r-factors.ipynb"         
[25] "17-r-data-frames.ipynb"      "18-r-lists.ipynb"           
[27] "19-r-apply-functions.ipynb"  "commands"                   
[29] "css"                         "demo.qmd"                   
[31] "docs"                        "identity"                   
[33] "img"                         "index.html"                 
[35] "index.log"                   "index.qmd"                  
[37] "index.tex"                   "index_files"                
[39] "intro-to-r-source.Rproj"     "references.bib"             
[41] "references.qmd"              "site_libs"                  
[43] "solved-tasks.qmd"            "summary.qmd"                
[45] "tasks.qmd"                   "tmp.RData"                  
[47] "Untitled.ipynb"             

3.5 Робота з RStudio

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

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

Note

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

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

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

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

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

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

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

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

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

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

Рис. 3.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, то ми побачимо перелік раніше виконаних команд.

Note

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

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

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

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

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

Рис. 3.11. RStudio Desktop. Новий проєкт

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

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

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

Рис. 3.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] 1 2 1 4 3 1 4 3 5 5 2 3 2 1 1 5 2 4 5 3
Important

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

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

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

print(paste0("Sum: ", vtr_sum))
[1] "Sum: 57"
print(paste0("Mean: ", vtr_mean))
[1] "Mean: 2.85"

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

hist(vtr, breaks = 5)

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

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

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

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

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

3.6 Робота з 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 11 Education Edition_.

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

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

Рис. 3.16. Anaconda Navigator

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

Рис. 3.17. Головне вікно Anaconda Navigator

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

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

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

Рис. 3.19. Зміна середовища у Anaconda Navigator

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

Рис. 3.20. Створення нового Jupyter Notebook

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

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

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

Рис. 3.21. Вікно середовища Visual Studio Code

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):

Рис. 3.22. Вікно середовища Google Collab

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

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

Рис. 3.23. kaggle.com

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

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/.