-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path01-chapter1.Rmd
483 lines (313 loc) · 38.6 KB
/
01-chapter1.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
# Вступ до курсу {#chapter1}
## План {-}
- [Що таке R?](#chapter11)
- [Історія створення R](#chapter12)
- [Основи роботи з R](#chapter13)
- [R Project](#chapter131)
- [Завантаження та інсталяція R](#chapter1311)
- [Перший запуск R GUI](#chapter1312)
- [Поняття робочого простору](#chapter1313)
- [Поняття робочого каталогу](#chapter1314)
- [Допомога (help/?)](#chapter1315)
- [Робота з R Studio](#chapter132)
- [Завантаження та інсталяція RStudio Desktop](#chapter1321)
- [Створення першого проекту в RStudio](#chapter1322)
- [Робота з Jupyter Notebook](#chapter133)
- [Огляд додаткових IDE та сервісів для роботи з R](#chapter134)
- [Основи роботи з пакетами в R](#chapter14)
- [Команди для роботи з пакетами](#chapter141)
- [Робота з пакетами в RStudio](#chapter142)
---
## Що таке R? {#chapter11}
R є поширеною мовою програмування для роботи з даними (`DataScience`) та машинного навчання (`Machine Learning`). Але Ви можете скористатися засобами R і для простіших задач: обчислення, візуалізація даних.
Синтаксис мови програмування R є досить простим для вивчення та використання, а широкий набір готових пакетів дозволяє використати готові розробки для виіршення широкого спектру задач від статистичних обчислень до навчання нейронних мереж для розпізнавання/класифікації зображень.
Важливо відмітити, що мова програмування R є безкоштовною (`free`) і має відкритий код (`open source`).
R має ряд корисних властивостей, серед яких варто виділити:
* **Візуалізація даних**. Побудова різноманітих видів графіків, робота з мапами, широкий спектр бібліотек та налаштувань до них.
* **Повторне використання коду**. На відміну від електронних таблиць, що мають обмеження на кількість спостережень (наприклад, MS Excel), R дозволяє працювати з великими масивами даних та перезапускати обчислення у потрібний момент не створюючи додаткових копій даних.
* **Машинне навчання**. R дозволяє використати для побудови, навчання та тестування моделей, а також оптимізації гіперпараметрів та відбору факторів дуже велику кількість алгоритмів. Існують також спеціальні пакети, що об'єднують у собі усі описані функції та алгоритми, наприклад, `caret` та `mlr`.
* **Автоматизація**. Написаний код та проекти можна перетворити у готові до публікації та впровадження продукти (deployment) або використовувати напрацьовані алгоритми для швидкого вирішення схожих задач (pipeline).
Також можна виділити досить корисні фічі **Розробка веб-застосунків** та **Звітність**, адже, використовуючи спеціальні бібліотеки (`shiny`, `shinydashboard`, `flexdashboard`, `rmarkdown`, `knitr` тощо), результати виконаної роботи можна "оживити" або сформувати "на льоту" готові до презентації документи.
---
## Історія створення R {#chapter12}
Мова програмування `R` виникла як продовження статистичної мови `S`. Назва мови `S` була обрана аналогічно до `C`. Створена `S` була у 1976 році компанією `Bell Labs`. Мова `S` мала кілька версій і широко використовувалася для комерційного програмування. Найпотужнішою була версія `S-Plus`, що мала реалізацію за досить немалу кількість функцій під `Windows` та `Unix`-платформи, що стримувало її розвиток. Саме в цей момент розпочинається історія `R`.
Влітку 1993 року двоє молодих новозеландських вчених анонсували свлю нову розробку, яку вони назвали `R` (є інформація, що буква "R" була обрана тому, що вона стоїть перед "S" у латинському алфавіті, тут є аналогія з мовою "C", якій передувала мова "B") [@R-stats-book]. За задумом авторів (Robert Gentelman та Ross Ihaka) це повинна була бути нова реалізація мови `S`, що відрізнялася від `S-Plus` деякими деталями, наприклад, роботою з локальними та глобальними змінними, пам'яттю тощо. Фактично було створено нову мову, що відгалуджується від `S`.
Проект з самого початку розвивався досить повільно, але коли у команди розробників `R` з'явлися ресурси, в тому числі зручна системи створення розширень (пакетів), все більше аналітиків, статистиків, вчених, програмістів почало переходити з `S-Plus` на `R`. Коли були усунуті проблеми роботи з пам'яттю перших версій `R`, на цю мову почали переходити користувачі інших статистичних пакетів (SAS, Stata, SYSSTAT).
Кількість книг та публікацій у мережі Інтернет по роботі з R постійно зростає разом із зацікавленням молодих і вже досвідчених спеціалістів зі сфери ІТ темою науки про дані, машинним навчанням, аналітикою для бізнесу, охорони здоров'я тощо.
---
## Основи роботи з R {#chapter13}
### R Project {#chapter131}
`R` є безкоштовним програмним забезпеченням, що розповсюджується за умовами [GNU General Public License](https://www.r-project.org/COPYING). Код, написаний на `R` компілюється та запускається на різних платформах: UNIX, Windows, MacOS [@R-base].
#### Завантаження та інсталяція R {#chapter1311}
Для завантаження актуальної версії R варто перейти на сайт проекту [https://cran.r-project.org/](https://cran.r-project.org/).
На сайті обираємо завантаження `R` для потрібної операційної системи. У межах курсу ми вокристовуємо `ОС Windows`, проте на синтаксис мови програмування та процес написання коду це не впливає:
```{r fig.cap="Завантаження R. Вибір ОС", eval=T, echo=F}
knitr::include_graphics("images/chapter1/r_gui_1.png")
```
У наступному вікні клікаємо на **install R for the first time**:
```{r fig.cap="Завантаження R. Перша інсталяція", eval=T, echo=F}
knitr::include_graphics("images/chapter1/r_gui_2.png")
```
Далі обираємо **Download R 4.X.X for Windows**, де `4.X.X` версія `R`, яка може бути відмінною на момент вивчення курсу:
```{r fig.cap="Завантаження R. Завантаження версії для ОС", eval=T, echo=F}
knitr::include_graphics("images/chapter1/r_gui_3.png")
```
Після завантаження файлу інсталяції потрібно його запустити. Зазвичай завантажений файл можна побачити у лівому нижному кутку браузера або у розділі "Завантаження" Вашого браузера. Наприклад, у браузері `Google Chrome` знайти цей пункт меню так:
```{r fig.cap="Завантаження R. Розділ \"Завантаження\" у Google Chrome", eval=T, echo=F}
knitr::include_graphics("images/chapter1/chrome_download_button.png")
```
Процес інсталяції ПЗ не відрізняється від інших програм і детального опису не потребує. Основним тут є запам'ятати шлях встановлення проекту або "відмітити галочками" пункти щодо публікації на *Робочий стіл* чи у меню швидкого доступу ярликів для того, щоб знайти файли запуску.
#### Перший запуск R GUI {#chapter1312}
За замовчуванням під час інсталяції пропонується шлях `C:\Program Files\R\R-4.X.X`.
Для запуску `R GUI` (стандартного графічного інтерфейсу для роботи з `R`) потрібно зайти у папку `bin\x64` (або `i386`, якщо у Вас 32-х розрядна ОС) та запустити файл `Rgui.exe`.
Вигляд вікна `R GUI` зображено нижче:
```{r fig.cap="Вигляд головного вікна RGui", eval=T, echo=F}
knitr::include_graphics("images/chapter1/r_gui_4.png")
```
<div class="alert alert-info">
<i class="fas fa-info-circle fa-alert fa-2x"></i>
*GUI* (*G*raphical *U*ser *I*nterface) - набір візуальних компонентів для інтерактивної взаємодії користувача з програмним забезпеченням.
</div>
У вікні `R Console` можна вводити команди/інструкції `R`, що будуть виконуватися:
Результати виконання команд зберігаються у памяті програми і можуть бути використані у наступних блоках коду:
```{r fig.cap="Вигляд консолі для команд RGui", eval=T, echo=F}
knitr::include_graphics("images/chapter1/r_gui_5.png")
```
Середовище `R GUI` має широкий спектр функцій і дозволяє написати будь-якого рівня складності проекти на R, проте він є лише базовою графічною обгорткою для `R`. Розглянемо інші зручніші середовища для написання `R`-коду.
#### Поняття робочого простору {#chapter1313}
У процесі виконання коду створені об'єкти/змінні та функції зберігаються у поточній сесії. У `R` є можливість переглянути список збережних елментів, видалити усі або окремі, зберегти стан поточної сесії диск та завантажити його пізніше, щоб не проходти усі етапи виконання коду повторно _(інколи дуже складний код може виконувати досить довго і збереження проміжних результатів може бути хорошим рішенням)_.
Для прикладу створимо дві змінні `var1`, `var2` та виведемо на консоль їх значення:
```{r vars_demo1, eval=T}
var1 <- 10
var2 <- sqrt(15)
var1
var2
```
Для того аби переглянути список змінних у поточній сесії варто скористатися **`ls()`**:
```{r eval=T}
ls()
```
Якщо виникає потреба очистити робочий простір і звільними пам'ять використовується команда `rm()`. Так, щоб очистити усі змінні можна скористатися `rm(list = ls())`, якщо ж Ви хочете видалити якусь одну/дві змінних, то просто вкажіть імена:
```{r eval=T}
rm(list = c("var1"))
ls()
```
Таким чином, після виконання коду вище, залишиться лише змінна `var2`.
Зберігання образу (`image`) робочого простору на диск здыйснюэться за допомогою команди `save.image("шлях до файлу.RData")`, а його зчитування за допомогою `load("шлях до файлу.RData")`:
```{r eval=T}
# Clear workspace
rm(list = ls())
# declare data
a <- 10
b <- a + 15
# Save image to file
save.image("tmp.RData")
```
```{r eval=T}
# Clear workspace
rm(list = ls())
# load image to file
load("tmp.RData")
print(a)
print(b)
```
У прикладі 2 не створюєть жодного параметра, проте вони збережні у файлі сесії.
Для того аби зберегти та зчитати окремий об'єкт, а не всі елементи сесії у `R` э спеціальний формат `.RDS`, який реалізовується методами `saveRDS(об'єкт, file="шлях_файлу.rds")` та `readRDS(file="шлях_файлу.rds")`.
#### Поняття робочого каталогу {#chapter1314}
Робота в будь-якому середовищі передбачає зв'язок із поточним каталогом, відносно якого будуються шляхи до файлів. Звичайно можна писати завжди повний шлях до файла, проте такий підхід є досить негнучким і під час перенесення коду між ПК створює чимало проблем розробникам.
Для визначення базового каталогу `R` в поточній сесії використовують команду `getwd()`. Якщо Ви користуєтеся `RStudio` та створили проект, то цей каталог буде відповідати повному шляху до папки проекту:
```{r eval=T}
getwd()
```
Для того аби змінити поточний робочий каталог використовують команду `setwd(шлях)`. Після запуску цієї команди функцій `getwd()` буде вказутивати уже на нову адресу/шлях.
<div class="alert aler-warning">
<i class="fas fa-2x fa-life-ring fa-alert"></i>
Варто знати та вміти будувати **абсолютні** та **відносні** шляхи до каталогів та файлів, ці знання корисні для роботи з усіма мовами програмування та більшістю ПЗ для роботи з даними.
</div>
Для запису шляху у ОС Windows можна скористатися 2-ма способами:
* `/` - **_слеш_**, записується як один знак;
* `\\` - **_бекслеш_**, записується як два знаки.
У прикладі нижче обидва шляхи ведуть до тієї ж папки (`drive` - буква диска):
```r
setwd("drive:/folder1/folder2/")
setwd("drive:\\folder1\\folder2\\")
```
Для перегляду інформації про наявні каталоги та файли у поточній робочій папці можна скористатися командою `dir()` або `list.files()`:
```{r eval = T}
dir()
list.files()
```
#### Допомога (help/?) {#chapter1315}
Для отримання швидкої довідки в `R` варто скористатися функціє `help(назва_об'єкта_або_функції)` або `?назва_об'єкта_або_функції`:
```r
# Get help for intersect() function
help(intersect)
```
Якщо є потреба отримати інформацію про пакет скористайтеся:
```r
help(package = "stats")
```
### Робота з R Studio {#chapter132}
#### Завантаження та інсталяція RStudio Desktop {#chapter1321}
**RStudio** - це інтегроване середовище розробки для `R`. Воно включає у себе консоль, підсвічування синтаксису (підказки), прямий запуск коду, інструменти для візуалізації графіків, html-коду, історію виконаних команд, відлагоджування коду, управління робочими просторами, підтримка різних видів розмітки та багато іншого. RStudio має версію з відкритим кодом та комерційну версію для `Windows`, `Linux` та `Mac`, а також веб-версію для серверів на Linux `RStudio Server` та `RStudio Server Pro` [@R-studio-site].
<div class="alert alert-info">
<i class="fas fa-2x fa-info-circle fa-alert"></i>
IDE (`integrated development environment`) - комплексне програмне рішення для розробки програмного забезпечення. Зазвичай, складається з редактора початкового коду, інструментів для автоматизації складання та відлагодження програм. Більшість сучасних середовищ розробки мають можливість автодоповнення коду. <a href="https://uk.wikipedia.org/wiki/%D0%86%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B5_%D1%81%D0%B5%D1%80%D0%B5%D0%B4%D0%BE%D0%B2%D0%B8%D1%89%D0%B5_%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B8" target="_blank" >Wikipedia</a>
</div>
Завантажити продукти можна з сайту https://rstudio.com. Щоб знайти середовище, яке ми будемо використовувати під час вивчення курсу варто виконати наступні кроки:
1. У головному меню сайту обрати `Products > RStudio`.
2. Знаходимо на сторінці кнопку для завантаження програми `RStudio Desktop` версії `Open Source` та натискаємо **DOWNLOAD RSTUDIO DESKTOP**:
```{r fig.cap="Вибір версії RStudio Desktop", eval=T, echo=F}
knitr::include_graphics("images/chapter1/rstudio_1.png")
```
3. Далі обираємо завантаження безкоштовної версії `RStudio Desktop` з наданого переліку:
```{r fig.cap="Завантаження RStudio Desktop", eval=T, echo=F}
knitr::include_graphics("images/chapter1/rstudio_2.png")
```
Після завантаження запускаємо інсталятор `RStudio`. Особливих кроків у цьому процесі немає.
Після запуску IDE RStudio зазвичай складається з 3-х або 4-х блоків:
* Файл, з яким працювали останнім (зліва зверху).
* Консоль для введення коду та виведення результатів (зліва знизу).
* Змінні середовища (`Environment`) (справа зверху) + Історія команд (`History`), Зєднання з зовнішніми ресурсами даних, наприклад, бази даних (`Connections`), навчальна інструкція (`Tutorial`).
* Файли каталогу або проекту (`Files`), Інстальовані пакети (`Packages`), Допомога (`Help`), Візуалізація результатів (`Plots`, `Viewer`).
```{r fig.cap="Головне вікно RStudio Desktop", eval=T, echo=F}
knitr::include_graphics("images/chapter1/rstudio_3.png")
```
Для першої демонстрації роботи виконаємо у консолі 2 рядки коду:
```{r fig.cap="Приклад написання коду в RStudio Desktop", eval=T, echo=F}
knitr::include_graphics("images/chapter1/rstudio_4.png")
```
Перший рядок з кодом `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**, то ми побачимо перелік раніше виконаних команд.
<div class="alert alert-info text-center">Для швидкого "гортання" уже виконаних раніше команд на консолі (_Console_) можна скористатися клавішами Up/Down на клавіатурі: <br>
![Arrow Keys](images/chapter1/arrow_keys.png)
</div>
#### Створення першого проекту в RStudio {chapter1322}
На відміну від `R Gui` в `RStudio` реалізовано концепцію проектів, що дозволяє організувати код та поєднати різні його частини у межах певного рішення.
Створимо наш перший проект.
Для початку оберемо з верхнього меню пункт `File > New Project`. У вікні вибору способу створення проекту клікаємо `New Directory`. Такий спосіб передбачає, що жодного файлу проекту поки не існує або ми пізніше туди скопіюємо уже готовий код.
```{r fig.cap="RStudio Desktop. Новий проект", eval=T, echo=F}
knitr::include_graphics("images/chapter1/rstudio_6.png")
```
На наступному кроці обираємо `New Project`:
```{r fig.cap="RStudio Desktop. Новий проект. Тип проекту", eval=T, echo=F}
knitr::include_graphics("images/chapter1/rstudio_7.png")
```
Після кліку на `Create Project` буде створено папку за попередньо обраним шляхом. Для запуску проекту або швидкого перемикання між проектами можна скористатися як пунктами головного меню, так і підменю проектів справа. Також відкрити проект можна запуском файлу `*.Rproj` у провіднику `Windows`.
```{r fig.cap="RStudio Desktop. Новий проект", eval=T, echo=F}
knitr::include_graphics("images/chapter1/rstudio_8.png")
```
Щоб додати новий файл з кодом `R` потрібно обрати з головного меню `File > New file > R Script` або скористатися командою `Ctrl+Shift+N`. Новий файл буде створено з назвою `Untitled[X]`, тому рекомендую одразу його зберегти, наприклад, як `TestCode.R`
Для першого проекту розвяжемо наступну задачу:
> Написати програму, що генерує вектор з 20-ти випадкових чисел у межах [1;5], обчислює середнє та суму чисел, а також виводить гістограму частоти кожного значення (скільки разів дане число повторюється у векторі).
Код для генерації 20-ти випадкових чесел у діапазоні [1;5] матиме наступний вигляд:
```{r eval=T}
vtr <- sample(1:5, 20, replace=TRUE)
vtr
```
<div class="alert alert-danger">
<i class="fas fa-bell fa-2x fa-alert"></i>
Результати виконання на Вашому ПК будуть іншими, адже **псевдо**генератор випадкових чисел буде брати іншу "точку відліку" для генерування чисел. Рекомендую перегляду функцію `set.seed(точка відліку - число)`.
_P.S. Також зустрічав у мережі інформацію, що робота `set.seed()` для `R` у `4+` версії може відрізнятися від `3+`. Після перевірки інформації оновлю даний текст._
</div>
Обчислення та виведення на консоль інформації про суму та середнє значення:
```{r eval=T}
vtr_sum <- sum(vtr)
vtr_mean <- mean(vtr)
print(paste0("Sum: ", vtr_sum))
print(paste0("Mean: ", vtr_mean))
```
Виведемо гістограму:
```{r eval=T, fig.cap="Приклад візуалізації гістрограми в R"}
hist(vtr, breaks = 5)
```
_Примітка. Детальніше про параметри функції `hist()` можна почитати тут: [https://www.rdocumentation.org/packages/graphics/versions/3.6.2/topics/hist](https://www.rdocumentation.org/packages/graphics/versions/3.6.2/topics/hist)_.
Орієнтовний вигляд вікна `RStudio` після викоання усіх описаних вище операцій матиме настпуний вигляд:
```{r fig.cap="RStudio Desktop. Перегляд змінних", eval=T, echo=F}
knitr::include_graphics("images/chapter1/rstudio_10.png")
```
Варто звернути увагу на виділений блок `Environment`, де можна переглянути усі доступні змінні, що є на даний момент у `пам'яті`. До цих параметрів можна звертатися у коді чи з консолі у будь, який момент. _Детальну інформацію про робоче середовище розглянуто нижче._
### Робота з Jupyter Notebook {#chapter133}
Ноутбуки стали зручним та поширеним інструментом для аналізу даних, а також послідовного викладення матеріалів чи результатів дослідження. Перевагою такого інструменту є перемішування коду, результатів його виконання та іншого текстового наповнення, що дозволяє сформувати "на льоту" готові до читання документи.
_*Примітка. Лекційні матеріали даного курсу виконані саме у ноутбуках._
Використання ноутбуків у навчальному процесі дозволяє описати не лише теоретичний матеріал, але приклади коду, що будуть виконувати безпосередньо під час ознайомлення з лекцією. Також слухач курсу може відредагувати наявний код та перевірити результати його виконання.
Розгялнемо процес інсталяції та запуску `Anaconda` (середовище з відкритим кодом для вирішення задач `Data Science`) та `Jupyter Notebook` на ПК.
Для встановлення середовища `Anaconda` потрібно перейти на сайт проекту та завантажити індивідуальну версію продукту: https://www.anaconda.com/products/individual [@Anaconda-site].
_*Примітка. Усі операції у даному курсі виконуються під операційну систему `Windows 10 Education`_.
Процес інсталяції середовища Anaconda не відрізняється від стандарного покрокового вставнолення програм у `Windows`.
Після запуску `Anaconda Navigator` для початку потрібно створити нове середовище та налаштувати роботу `R`:
![Anaconda](images/chapter1/anaconda_1.png)
Для початку потрібно перейти на вкладку `Environments` та натиснути `Create`:
```{r fig.cap="Anaconda. Головне вікно", eval=T, echo=F}
knitr::include_graphics("images/chapter1/anaconda_2.png")
```
У вікні, що відкрилося потрібно відмітити [x] вставновлення інструментів для роботи з `R`:
```{r fig.cap="Anaconda. Створення нового середовища на основі R", eval=T, echo=F}
knitr::include_graphics("images/chapter1/anaconda_3.png")
```
Після встановлення R-інструментів оптрібно переключитися на вкладку `Home` та робочий простір:
```{r fig.cap="Anaconda. Зміна середовища", eval=T, echo=F}
knitr::include_graphics("images/chapter1/anaconda_4.png")
```
Після завантаження робочого простору оберіть `Launch` для запуску `Jupyter Notebook` з переліку встановлених засобів. `Jupyter Notebook` буде запущено у браузері за замовчеванням Вашого ПК. Відкрити ноутбук можна обравши потрібний файл, а створити новий у меню справа `New` > `Notebook` > `R`:
```{r fig.cap="Jupyter Notebook. Створення нового ноутбука", eval=T, echo=F}
knitr::include_graphics("images/chapter1/anaconda_6.png")
```
### Огляд додаткових IDE та сервісів для роботи з R {#chapter134}
Окрім середовищ описаних вище існує ряд досить цікавих інструментів, що роблять досить зручною роботу з `R`-кодом. Розглянемо ці інструменти.
**Visual Studio Code** - безкоштовний редактор коду від `Microsoft`, орієнтовний на велику кількість мов програмування та фреймворків [@vs-code]. Серед інших іструментів у VS Code доступні також розширення для роботи з `R`:
```{r fig.cap="Visual Studio Code. Інсталяція RTools", eval=T, echo=F}
knitr::include_graphics("images/chapter1/vs_code.png")
```
**Visual Studio Community Edition** - безкоштовне середовище розробки від компаній Microsoft. VS створено з самого початку для розробки під платформу .NET та мови програмування C#, VB.NET, F# тощо, але з часом отримало багато розширень, що дозволяють у тому числі, працювати і з проектами в `R` [@visual-studio].
**Google Collab** - онлайн сервіс для роботи з ноутбуками для `Data Science` від компанії `Google` [@google-collab]:
```{r fig.cap="Google Collab", eval=T, echo=F}
knitr::include_graphics("images/chapter1/google_collab.png")
```
_Примітка. Код у прикладі вище написаний на `Python`._
[**kaggle.com**](https://kaggle.com) - сервіс для змагань з `Data Science` та `Machine Learning`. Окрім переліку змагань, наборів даних сервіс має досить зручні ноутбуки.
```{r fig.cap="Kaggle.com", eval=T, echo=F}
knitr::include_graphics("images/chapter1/kaggle.png")
```
Загалом сервісів та середовищ для розробки в `R` існує досить багато і їх кількість зростає, але це не впливає на принципи написання коду та роботу з даними.
---
## Основи роботи з пакетами в R {#chapter14}
### Команди для роботи з пакетами {#chapter141}
Своєю популярністю `R` завдячує, у тому числі, і можливості швидко реалізувати досить складні дослідження за допомогою наборів уже готових функції. Такі функції обєднуються у пакети та публікуються вченими, досліджниками та розробниками зі всього світу.
**Пакети в R** - організовані набори методів та класів для виконання вузького набору задач під час програмування на `R`. Вони містять як функції так і опис способів їх використання, а чтакож дані для відтворення прикладів коду.
Пакети можуть бути завантажені з офіційного сайту проекту [cran.r-project.org](https://cran.r-project.org/web/packages/available_packages_by_name.html) / [@R-base] або інших джерел (dev-версії є доступні на `github`). Завантаження пакетів у `R` можна здійснювати як з локального диска, так і з серверів у мережі інтернет.
Для встановлення пакету використовується команда **`install.packages()`**:
```r
install.packages("fun")
```
Для підключення пакету та його використання варто скористатися `library()`:
```r
packageDescription("fun")
help(package = "fun")
```
<br>
<div class="alert alert-success">
<i class="fas fa-book fa-2x fa-alert"></i>
Дуже рекомендую почитати детальніше про пакети у статті на `DataCamp`:
<a href="https://www.datacamp.com/community/tutorials/r-packages-guide" target="_balnk">R Packages: A Beginner's Guide</a>.
</div>
### Робота з пакетами в RStudio {#chapter142}
Робота з пакетами в RStudio організована досить зручно і дозволяє швидко переглянути інформацію про пакет та функції, які він дозволяє використати.
Для інсталяції та оновлення пакетів можна скористатися меню `Tools`:
```{r fig.cap="RStudio Desktop. Меню інсталяції пакетів", eval=T, echo=F}
knitr::include_graphics("images/chapter1/packages_1.png")
```
Після вибору `Install Packages...` відкриється вікно, де можна обрати як джерело інсталяції пакету так і сам пакет з переліку, ввівши кілька перших букв його назви:
```{r fig.cap="RStudio Desktop. Вибір пакету для інсталяції", eval=T, echo=F}
knitr::include_graphics("images/chapter1/packages_2.png")
```
`RStudio` дозволяє також переглянути інстальовані пакети/бібліотеки, розроблені іншими користувачами та завантажені у пам'ять ("галочка" навпроти назви пакету):
```{r fig.cap="RStudio Desktop. Перегляд інстальованих пакетів", eval=T, echo=F}
knitr::include_graphics("images/chapter1/packages_3.png")
```
Доступ до функцій та інших елементів пакету можна здійснювати використавши запис `назва_пакету::назва_функції()` без підключення бібліотеки за допомогою `library()`:
```{r fig.cap="RStudio Desktop. Приклад використання пакету `fun`", eval=T, echo=F}
knitr::include_graphics("images/chapter1/packages_4.png")
```
Користувачі можуть не тільки завантажувати існуючі пакети,але істворювати власні та роботи їх доступними для дослідників зі всього світу.