R
mpg ~ wt + cyl
R часто використовують для аналізу часових рядів.; Його розвиває організація Posit.;
== Формули в R ==
'''Практична роль:''' у R істотно відрізняти одну умову для програми від векторної умови для багатьох значень.; '''Суть функції:''' у R функції дозволяють перетворити одноразовий аналіз на повторюваний інструмент.; library(readxl)
== Регресія ==
* у R console;
* у RStudio;
* у Positron;
* у Jupyter Notebook;
* через Rscript;
* у R Markdown або Quarto.;== Типи даних ==
= Мова програмування R =
Приклад:
summarise(
* пошук pattern;
* заміна тексту;
* розділення рядків;
* об’єднання тексту;
* зміна регістру;
* регулярні вирази;
* очищення текстових колонок.; це мова програмування і середовище; додатково реалізовано аналізу даних, візуалізації, data science, машинного навчання, наукових досліджень і підготовки відтворюваних аналітичних звітів виступає ключовою рисою статистичних обчислень забезпечується через '''R'''.;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
'''Matrix''' — це двовимірна структура, де всі елементи мають один тип.; Shiny надає можливість:
'''Практична роль:''' R має типи й структури, які дуже зручні саме для табличних і статистичних задач.;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
- табличних даних;
- CSV;
- результатів SQL-запитів;
- статистичного аналізу;
- побудови моделей;
- візуалізації;
- звітності.; Саме з цієї причини її синтаксис і стандартні структури сильно орієнтовані на data analysis.;== tidyr ==
items <- list(1:3, 4:6, 7:9)
result <- lapply(items, mean) print(result) </syntaxhighlight> Tibble має зручніший друк, кращу поведінку з типами й частіше застосовують, коли потрібно в tidyverse.; Приклад:
x = "Вага",
Приклад:
Приклад:
Базові статистичні функції: ggplot(mtcars, aes(x = wt, y = mpg)) +
'''Практична роль:''' R часто починає аналітичний workflow із імпорту CSV, Excel, бази даних або API.; '''Практична роль:''' tibble зручна для сучасного R-коду, особливо разом із dplyr і ggplot2.; У tidyverse часто застосовується `%>%`:
'''stringr''' — пакет tidyverse для роботи з текстом.; numbers <- c(1, 2, 3, 4, 5)
numbers * 2
- classification;
- regression;
- clustering;
- feature engineering;
- cross-validation;
- hyperparameter tuning;
- model evaluation;
- explainability.; Результат:
'''істотно:''' багато об’єктів у R, зокрема результати моделей, фактично є собою списками зі структурованими компонентами.;
</div>
</div>
R виникла як реалізація ідей мови S, яка використовувалася для статистичних обчислень.; count <- count - 1
}
RStudio і Posit
values <- c(10, 20, NA, 40)
mean(values) mean(values, na.rm = TRUE) </syntaxhighlight>
y = "Miles per gallon"
x <- 10 name <- "Alice" active <- TRUE </syntaxhighlight> print(summary)
Перевага: R надає можливість поєднати аналіз даних, статистику, графіки й формування звітів в одному відтворюваному workflow.; names <- c(" Alice ", " Bob ") clean_names <- str_trim(names) print(clean_names) </syntaxhighlight>
Функції в R створюються через `function`.; Запуск R-коду можливий:
'''Практична роль:''' R добре підходить для класичного machine learning, особливо коли важлива статистична інтерпретація й аналіз даних.; users <- tibble(
name = c("Alice", "Bob", "Carol"),
age = c(25, 30, 28)
)
print(users)
RStudio застосовується для: Основні функції:
ggplot2 — один із найвідоміших пакетів R для візуалізації даних.; * `filter`;
- `select`;
- `mutate`;
- `arrange`;
- `summarise`;
- `group_by`;
- `left_join`;
- `inner_join`;
- `bind_rows`.; labs(
Статистика в R
Умовні конструкції в R:
</div>
)
* прогнозування продажів;
* аналіз сезонності;
* тренди;
* згладжування;
* ARIMA;
* ETS;
* Prophet;
* фінансові ряди;
* економічні показники;
* моніторинг метрик.; library(ggplot2)
R підтримує роботу vectorized operations, тобто операції над усім вектором одразу.;<syntaxhighlight lang="r">
<div style="background:#eef2ff; border-left:6px solid #4f46e5; padding:12px; margin:12px 0;">
</div>
ages <- c(15, 20, 30)
groups <- ifelse(ages >= 18, "adult", "minor")
'''Увага:''' factors можуть бути дуже корисними в статистиці, але неправильне перетворення character ↔ factor має змогу створювати помилки в аналізі.;== Перша програма на R ==
data <- read_excel("report.xlsx")
</div>
Приклад:
Простий приклад:
* `apply`;
* `lapply`;
* `sapply`;
* `tapply`;
* `mapply`.; '''Перевага CRAN:''' програмний пакет пакетів R дуже широка, особливо для статистики, науки й прикладного аналізу даних.; Це таблиця, де колонки можуть мати різні типи.; * створювати інтерактивні графіки;
* робити фільтри;
* будувати dashboard;
* публікувати моделі;
* давати бізнес-користувачам доступ до аналізу;
* створювати data apps без повноцінного frontend-фреймворку.;<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
Приклад `for`:
* статистиків;
* науковців;
* аналітиків;
* дослідників;
* викладачів;
* data scientists;
* фахівців із прикладних даних.;
</syntaxhighlight>
title = "Залежність витрати пального від ваги",
data <- read_csv("data.csv") </syntaxhighlight>
readr і readxl
<div style="background:#fff7ed; border-left:6px solid #fb923c; padding:12px; margin:12px 0;">
</div>
</div>
Основні задачі:
</div>
Приклад:
Пакети:
install.packages("ggplot2")
library(stringr)
Пакети й підходи:
</div>
Time series
- лінійної алгебри;
- статистики;
- числових обчислень;
- моделювання;
- матричних операцій.; subset(cyl == 6)
- розширення можливостей R;
- роботи з конкретними форматами даних;
- статистичного аналізу;
- створення графіків;
- побудови моделей;
- підготовки звітів;
- створення вебзастосунків;
- інтеграцій із базами даних або API.;== Packages ==
Цикли
Приклад `while`:
Практична роль: R має сильну екосистему для часових рядів, прогнозування й економетричного аналізу.;Мова R застосовується для задач, де потрібно аналізувати інформаційні дані, будувати статистичні моделі, перевіряти гіпотези, створювати графіки, автоматизувати звіти або виконувати дослідницькі обчислення.; List часто застосовується для:
Практична роль: lubridate робить роботу з датами в R значно зручнішою.; З часом R стала відкритою мовою з великою спільнотою, пакунками CRAN і потужною екосистемою для аналізу даних.;
* `parsnip`;
* `recipes`;
* `workflows`;
* `rsample`;
* `yardstick`;
* `tune`.; '''List''' — структура, яка має змогу містити елементи різних типів.;<syntaxhighlight lang="r">
<syntaxhighlight lang="r">
<syntaxhighlight lang="r">
)
'''NA''' означає відсутнє значення.; Їх потрібно виявляти, пояснювати й обробляти.;== Функції ==
</div>
R застосовується для машинного навчання.;<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
* `forecast`;
* `fable`;
* `tsibble`;
* `zoo`;
* `xts`;
* `prophet`.; mpg ~ wt * cyl
Приклад:
</div>
<syntaxhighlight lang="markdown">
Перевага tidymodels: вона дає єдиний і tidy-style підхід до побудови, навчання й оцінювання моделей.;== apply-сімейство ==
</div>
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
count = n()
Для векторних умов часто використовують `ifelse`:
Приклади:
'''tidyr''' — пакет для приведення даних до tidy format.; Функції потрібні для:
</div>
'''Shiny''' — фреймворк для створення інтерактивних web-застосунків і dashboard на R.; * звітів;
* наукових документів;
* презентацій;
* навчальних матеріалів;
* автоматичних dashboard;
* reproducible research;
* аналітичної документації.; * розгортання колонок;
* збирання колонок;
* робота з missing values;
* nesting;
* unnesting;
* перетворення wide ↔ long.; * написання R-коду;
* запуску команд;
* перегляду таблиць;
* побудови графіків;
* роботи з packages;
* створення R Markdown;
* debugging;
* роботи з Git;
* створення Shiny-застосунків;
* підготовки аналітичних звітів.;== Tidyverse ==
Вектор містить елементи одного типу.; '''Головна структура R:''' data frame — це базовий формат для більшості задач аналізу даних.; print(result)
* scatter plots;
* line charts;
* bar charts;
* histograms;
* boxplots;
* density plots;
* facets;
* statistical graphics;
* publication-quality charts.; group_by(cyl) %>%
Типові задачі:
library(tibble)
<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
'''Порада:''' у production або командних проєктах істотно фіксувати версії пакетів, щоб аналіз залишався відтворюваним.;</div>
* повторного використання коду;
* автоматизації аналізу;
* створення власних обчислень;
* зменшення дублювання;
* тестування;
* побудови пакетів.;<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
<syntaxhighlight lang="r">
install.packages("dplyr")
Приклад напрямів:
<syntaxhighlight lang="r">
</div>
== tidymodels ==
age <- 25 price <- 19.99 name <- "Alice" is_active <- TRUE </syntaxhighlight> mpg ~ .; Приклади задач:
date <- ymd("2026-05-08") month(date) year(date) </syntaxhighlight>
- категорій;
- груп;
- рівнів;
- статистичних моделей;
- ordered categories;
- графіків;
- analysis of variance.;== Для чого застосовується R ==
Суть змінної: змінна в R зберігає об’єкт: число, текст, вектор, таблицю, модель або інший результат обчислення.; user <- list(
name = "Alice", age = 25, scores = c(90, 85, 88)
)
print(user$name) </syntaxhighlight>
== CRAN ==
У R потрібно явно враховувати missing values.;<syntaxhighlight lang="r">
<syntaxhighlight lang="r">
Основні типи даних у R:
== Умови ==
У сучасному R додатково є собою base pipe `|>`:
'''tidymodels''' — сучасна програмний пакет R для machine learning у стилі tidyverse.; Регресія застосовується для:
message <- "Hello, world!"
print(message)
dplyr
Через CRAN встановлюють пакети:
mpg ~ wt
- preprocessing;
- recipes;
- model specification;
- resampling;
- tuning;
- workflows;
- metrics;
- evaluation.;== Factor ==
До tidyverse належать: Приклад:
Shiny
ui <- fluidPage(
sliderInput("n", "Кількість:", 1, 100, 50),
plotOutput("plot")
)
server <- function(input, output) {
output$plot <- renderPlot({
hist(rnorm(input$n))
})
}
shinyApp(ui, server) </syntaxhighlight> У R змінні зазвичай створюються через оператор `<-`.
Приклад:
'''Практична роль:''' R особливо сильна там, де потрібно оперативно перейти від сирих даних до статистичного висновку, графіка або звіту.; '''Практична роль:''' dplyr є собою одним із головних інструментів R для очищення, групування й трансформації табличних даних.;</div>
library(tidyr)
print(count)
</div>
Приклад:
library(dplyr)
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
* статистичного аналізу;
* exploratory data analysis;
* очищення даних;
* трансформації таблиць;
* візуалізації;
* регресійного аналізу;
* часових рядів;
* біостатистики;
* соціологічних досліджень;
* фінансового аналізу;
* машинного навчання;
* інтерактивних dashboard;
* аналітичних звітів;
* наукових публікацій;
* reproducible research.; '''Головна сила R:''' статистичні функції є собою природною частиною мови й екосистеми.;<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
users <- data.frame(
name = c("Alice", "Bob", "Carol"),
age = c(25, 30, 28),
active = c(TRUE, FALSE, TRUE)
)
print(users)
age <- 20
if (age >= 18) {
Підключення пакета:
Практична роль: apply-функції допомагають обробляти списки, матриці й групи даних без явного циклу.; library(dplyr) Основна ідея: R розроблена для роботи з даними: статистики, таблиць, моделей, графіків, досліджень і аналітичних звітів.;== Pipe operator ==
long_data <- pivot_longer(
data,
cols = starts_with("year_"),
names_to = "year",
values_to = "value"
) </syntaxhighlight>
Приклад:
summarise(avg_mpg = mean(mpg))
застосовується для:
print(i)
Tidyverse — це набір R-пакетів для сучасної роботи з даними.; * прогнозування;
- пояснення залежностей;
- статистичного висновку;
- економетрики;
- аналізу факторів;
- перевірки гіпотез.; library(ggplot2)
for (i in 1:5) {
values <- c(10, 20, 30, 40, 50)
mean(values) sd(values) summary(values) </syntaxhighlight>
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
<syntaxhighlight lang="r">
== Matrix ==
<syntaxhighlight lang="r">
<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
library(lubridate)
* статистики;
* візуалізації;
* машинного навчання;
* роботи з даними;
* звітності;
* часових рядів;
* біоінформатики;
* економетрики;
* геоданих;
* web apps.;== Machine Learning у R ==
<syntaxhighlight lang="r">
== Загальний характеристика ==
Tidyverse орієнтований на:
<div style="background:#fff7ed; border-left:6px solid #fb923c; padding:12px; margin:12px 0;">
== Змінні ==
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
}
'''Практична роль:''' RStudio зробила роботу з R зручнішою для аналітиків, дослідників і data scientists.; avg_mpg = mean(mpg),
* `mean`;
* `median`;
* `sd`;
* `var`;
* `summary`;
* `quantile`;
* `cor`;
* `t.test`;
* `chisq.test`;
* `aov`;
* `lm`;
* `glm`.; print("Adult")
== історичний розвиток R ==
== Vector ==
{{SEO
|title=Мова програмування R — статистика, аналіз даних, візуалізація, data science і наукові обчислення
|description=Мова програмування R — Wiki-стаття про мову й середовище для статистичних обчислень, аналізу даних, data science, візуалізації, машинного навчання та наукових досліджень. Розглянуто RStudio, CRAN, packages, data frames, vectors, factors, tidyverse, dplyr, ggplot2, Shiny, R Markdown, Quarto, статистичне моделювання, machine learning, переваги, обмеження і хороші практики.
|keywords=мова програмування R, R programming language, R, статистика, аналіз даних, data science, наукові обчислення, RStudio, Posit, CRAN, tidyverse, dplyr, ggplot2, Shiny, R Markdown, Quarto, data frame, vector, factor, statistical computing, machine learning, visualization, регресія, статистичне моделювання, програмування
|alternativeTo=ручний аналіз даних в Excel; статистичні розрахунки без коду; ручне створення графіків; ізольовані статистичні пакети без гнучкого програмування; одноразові аналітичні файли без відтворюваності; ручне формування звітів; закриті статистичні інструменти для задач, які можна автоматизувати в R
}}
y ~ x1 + x2
<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
print("Minor")
<syntaxhighlight lang="text">
<syntaxhighlight lang="r">
У цьому прикладі модель прогнозує `mpg` за змінними `wt` і `cyl`.; 2 4 6 8 10
<syntaxhighlight lang="r">
Приклад:
Пакети використовуються для:
lubridate корисний для:
R розвивалась навколо потреб:
'''Практична роль:''' matrix зручна для числових обчислень, але для реальних таблиць із різними типами частіше використовують data frame.; model <- lm(mpg ~ wt + cyl, data = mtcars)
summary(model)
library(readr)
Лінійна регресія:
Matrix застосовується для:
- numeric;
- integer;
- character;
- logical;
- factor;
- Date;
- POSIXct;
- vector;
- matrix;
- array;
- list;
- data frame;
- tibble.; R має потужні функціональні можливості статистики з коробки.;
Приклад: Приклади:
'''Суть vectorization:''' у R часто не потрібно писати цикл для кожного елемента — операційна дія має змогу застосовуватися до всього вектора.; додатково можна використовувати `=`, але в R-культурі для присвоєння часто застосовують `<-`.
<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
R особливо популярна серед статистиків, аналітиків даних, дослідників, data scientists, біоінформатиків, економістів, соціологів, фінансових аналітиків і фахівців, які працюють із даними.; '''Практична роль:''' R робить статистичне моделювання дуже доступним через формули на кшталт `y ~ x1 + x2`.;== List ==
* читабельний код;
* pipe workflow;
* tidy data;
* трансформацію таблиць;
* візуалізацію;
* імпорт даних;
* роботу з текстом;
* функціональну обробку.;</div>
Він базується на grammar of graphics.; Типові сценарії використання R:
'''R Markdown''' надає можливість поєднувати текст, R-код, графіки й результати в одному документі.; * аналіз таблиць;
* статистичні тести;
* регресія;
* класифікація;
* clustering;
* time series analysis;
* data visualization;
* dashboard;
* reporting;
* автоматизація процесів аналітики;
* наукові дослідження;
* обробка експериментальних даних;
* аналіз опитувань;
* фінансове моделювання;
* біоінформатика;
* економетрика.;== R Markdown ==
'''Суть pipe:''' pipe надає можливість читати обробку даних як послідовність кроків зверху вниз.; Pipe operator надає можливість передавати результат одного кроку в наступний.; Часто векторизовані операції або tidyverse-підхід роблять код коротшим і зрозумілішим.; R підтримує роботу класичні цикли.; '''Перевага Shiny:''' аналітик має змогу перетворити R-аналіз на інтерактивний застосунок без окремої frontend-розробки.;== ggplot2 ==
Задачі:
</div>
'''dplyr''' — пакет для трансформації таблиць.;</div>
status <- factor(c("new", "active", "blocked", "active"))
print(status)
count <- 3
while (count > 0) {
} else { Суть прикладу: R надає можливість оперативно виконувати команди й одразу бачити результат, що комфортно для дослідження даних.;== Tibble ==
CRAN або Comprehensive R Archive Network — це центральний репозиторій пакетів R.; ggplot2 застосовується для:
Приклад:
</syntaxhighlight>
</syntaxhighlight>
geom_point() +
Практична порада: правильна форма таблиці часто спрощує і аналіз, і графіки, і моделювання.; filter(cyl == 6) %>% R добре підходить для:
stringr
Приклад: </syntaxhighlight> Фрагмент:
істотно: формульний синтаксис R дуже зручний, але потрібно розуміти, що означають `+`, `*`, `:` і `.` у контексті моделей.; Factors використовуються для: Data frame застосовується для: Приклад:
summary(mtcars)
add <- function(a, b) {
a + b
}
result <- add(2, 3) print(result) </syntaxhighlight>
Приклад:
</div>
</div>
Приклад:
<syntaxhighlight lang="r">
завдяки наявності '''Практична роль:''' stringr користувачі можуть чистити й обробляти текстові інформаційні дані в таблицях.;<syntaxhighlight lang="r">
print(groups)
== NA ==
'''Головна перевага tidyverse:''' він дає цілісний, зручний і читабельний стиль роботи з даними.; '''Критично:''' пропущені значення можуть змінити результат аналізу.; library(dplyr)
== Data frame ==
'''readr''' застосовується для швидкого читання текстових таблиць.; }
Простий приклад:
* `ggplot2`;
* `dplyr`;
* `tidyr`;
* `readr`;
* `purrr`;
* `tibble`;
* `stringr`;
* `forcats`.; '''lubridate''' — пакет для роботи з датами й часом.;</div>
library(shiny)
</div>
'''RStudio''' — популярне інтегроване середовище розробки для R.;<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
Приклад:
R широко застосовується для регресійного аналізу.; ```{r}
<syntaxhighlight lang="r">
<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
'''істотно:''' R історично створювалася не як універсальна мова для всього, а як інструмент для статистики й аналізу даних.; R має функції для сфера застосування операцій до структур даних.;
- складних об’єктів;
- результатів моделей;
- nested data;
- API-відповідей;
- параметрів;
- збереження кількох результатів разом.; Data frame — одна з найважливіших структур у R.; m <- matrix(1:6, nrow = 2, ncol = 3)
print(m) </syntaxhighlight>
- `caret`;
- `tidymodels`;
- `randomForest`;
- `xgboost`;
- `ranger`;
- `e1071`;
- `glmnet`;
- `nnet`;
- `keras`;
- `torch`;
- `mlr3`.; Приклад:
водночас у R часто використовують vectorization або функції на кшталт `lapply`, `sapply`, `purrr::map`.; Приклад:
Package у R — це набір функцій, даних, документації й іноді compiled code.; * парсингу дат;
- виділення року, місяця, дня;
- роботи з timezone;
- обчислення періодів;
- аналізу часових даних;
- time series preprocessing.;
'''readxl''' застосовується для читання Excel-файлів.; result <- mtcars %>% '''Factor''' — тип даних для категоріальних змінних.;
CRAN містить пакети для: result <- mtcars |>
Вона охоплює пакети для:
lubridate
Перевага ggplot2: графік будується як набір шарів, з цієї причини його без зайвих зусиль поступово ускладнювати й налаштовувати.; Tibble — сучасніша реліз data frame з tidyverse.; summary <- mtcars %>%