Перейти до вмісту

R

Матеріал з K2 ERP Wiki

</syntaxhighlight>

Приклад:

Pipe operator дає можливість передавати результат одного кроку в наступний.

print(result)

print(groups)

Через CRAN встановлюють пакети:

names <- c(" Alice ", " Bob ")
clean_names <- str_trim(names)
print(clean_names)
  • написання R-коду;
  • запуску команд;
  • перегляду таблиць;
  • побудови графіків;
  • роботи з packages;
  • створення R Markdown;
  • debugging;
  • роботи з Git;
  • створення Shiny-застосунків;
  • підготовки аналітичних звітів. readr застосовується для для швидкого читання текстових таблиць. Практична роль: dplyr виступає як одним із головних інструментів R для очищення, групування й трансформації табличних даних.
    users <- data.frame(
     name = c("Alice", "Bob", "Carol"),
     age = c(25, 30, 28),
     active = c(TRUE, FALSE, TRUE)
    )
    
    print(users)
    

</syntaxhighlight>

ggplot2 — один із найвідоміших пакетів R для візуалізації даних. * розгортання колонок;

  • збирання колонок;
  • робота з missing values;
  • nesting;
  • unnesting;
  • перетворення wide ↔ long. Приклад:

library(dplyr) Однак у R часто використовують vectorization або функції на кшталт `lapply`, `sapply`, `purrr::map`. lubridate — пакет для роботи з датами й часом.== Tidyverse ==

tidyr — пакет для приведення даних до tidy format. Приклад: Приклад:

Matrix

RStudio — популярне інтегроване середовище розробки для R. Функції в R створюються через `function`.

<syntaxhighlight lang="markdown">

Лінійна регресія:

* статистичного аналізу;
* exploratory data analysis;
* очищення даних;
* трансформації таблиць;
* візуалізації;
* регресійного аналізу;
* часових рядів;
* біостатистики;
* соціологічних досліджень;
* фінансового аналізу;
* машинного навчання;
* інтерактивних dashboard;
* аналітичних звітів;
* наукових публікацій;
* reproducible research.<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">

<div style="background:#fff7ed; border-left:6px solid #fb923c; padding:12px; margin:12px 0;">

* складних об’єктів;
* результатів моделей;
* nested data;
* API-відповідей;
* параметрів;
* збереження кількох результатів разом.</div>
'''Практична роль:''' у R критично відрізняти одну умову для програми від векторної умови для багатьох значень.

}

Умови

dplyr — пакет для трансформації таблиць. Регресія застосовується для для:

y = "Miles per gallon"

Увага: factors можуть бути дуже корисними в статистиці, але неправильне перетворення character ↔ factor здатна створювати помилки в аналізі. Порада: у production або командних проєктах критично фіксувати версії пакетів, щоб аналіз залишався відтворюваним.== Типи даних ==

  • classification;
  • regression;
  • clustering;
  • feature engineering;
  • cross-validation;
  • hyperparameter tuning;
  • model evaluation;
  • explainability. так само можна використовувати `=`, але в R-культурі для присвоєння часто застосовують `<-`.
</div>
</div>

'''Практична роль:''' R має сильну екосистему для часових рядів, прогнозування й економетричного аналізу. List часто застосовується для для:
 title = "Залежність витрати пального від ваги",

for (i in 1:5) {

</div>
Приклад:
ages <- c(15, 20, 30)
groups <- ifelse(ages >= 18, "adult", "minor")

<div style="background:#eef2ff; border-left:6px solid #4f46e5; padding:12px; margin:12px 0;">

library(dplyr)

Приклад:

* звітів;
* наукових документів;
* презентацій;
* навчальних матеріалів;
* автоматичних dashboard;
* reproducible research;
* аналітичної документації. Його розвиває компанія-користувач Posit. '''Суть прикладу:''' R дає можливість оперативно виконувати команди й одразу бачити результат, що інтуїтивно для дослідження даних. Matrix застосовується для для:
Приклад:
== Shiny ==

Приклад:

<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">

</div>

* прогнозування продажів;
* аналіз сезонності;
* тренди;
* згладжування;
* ARIMA;
* ETS;
* Prophet;
* фінансові ряди;
* економічні показники;
* моніторинг метрик. '''stringr'''  пакет tidyverse для роботи з текстом.<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">

== Pipe operator ==

* scatter plots;
* line charts;
* bar charts;
* histograms;
* boxplots;
* density plots;
* facets;
* statistical graphics;
* publication-quality charts.<syntaxhighlight lang="r">
<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">
<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">

'''Практична роль:''' tibble зручна для сучасного R-коду, особливо разом із dplyr і ggplot2. library(ggplot2)

date <- ymd("2026-05-08")
month(date)
year(date)
summarise(
'''Shiny'''  фреймворк для створення інтерактивних web-застосунків і dashboard на R. * категорій;
* груп;
* рівнів;
* статистичних моделей;
* ordered categories;
* графіків;
* analysis of variance.</div>
== Data frame ==
'''Практична роль:''' RStudio зробила роботу з R зручнішою для аналітиків, дослідників і data scientists. Часто векторизовані операції або tidyverse-підхід роблять код коротшим і зрозумілішим. * `filter`;
* `select`;
* `mutate`;
* `arrange`;
* `summarise`;
* `group_by`;
* `left_join`;
* `inner_join`;
* `bind_rows`. print(count)

<div style="background:#ecfdf5; border-left:6px solid #10b981; padding:12px; margin:12px 0;">

Приклад:
Простий приклад:

== Tibble ==
<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
Запуск R-коду можливий:

</div>
== Перша програма на R ==

<syntaxhighlight lang="r">

Це означає: змінна `y` моделюється через `x1` і `x2`.== Factor ==

Вона містить пакети для:

== List ==
lubridate корисний для:

</div>

Простий приклад:

'''критично:''' R історично створювалася не як універсальна мова для всього, а як інструмент для статистики й аналізу даних. status <- factor(c("new", "active", "blocked", "active"))
print(status)
)

CRAN містить пакети для:

Загальний SEO-опис

Основні типи даних у R:

Приклад:

  • у R console;
  • у RStudio;
  • у Positron;
  • у Jupyter Notebook;
  • через Rscript;
  • у R Markdown або Quarto. критично: багато об’єктів у R, зокрема результати моделей, фактично виступає як списками зі структурованими компонентами. З часом R стала відкритою мовою з великою спільнотою, пакунками CRAN і потужною екосистемою для аналізу даних.

Задачі:

  • створювати інтерактивні графіки;
  • робити фільтри;
  • будувати dashboard;
  • публікувати моделі;
  • давати бізнес-користувачам доступ до аналізу;
  • створювати data apps без повноцінного frontend-фреймворку.

message <- "Hello, world!" print(message) </syntaxhighlight>

Практична роль: R добре підходить для класичного machine learning, особливо коли важлива статистична інтерпретація й аналіз даних. Tidyverse — це набір R-пакетів для сучасної роботи з даними.

Практична роль: R часто починає аналітичний workflow із імпорту CSV, Excel, бази даних або API.== tidymodels == Основні функції:

Практична роль: apply-функції допомагають опрацьовувати списки, матриці й групи даних без явного циклу. Практична роль: lubridate робить роботу з датами в R значно зручнішою. user <- list(

name = "Alice",
age = 25,
scores = c(90, 85, 88)

)

print(user$name) </syntaxhighlight>

Tidyverse орієнтований на:

x <- 10 name <- "Alice" active <- TRUE </syntaxhighlight>

  • preprocessing;
  • recipes;
  • model specification;
  • resampling;
  • tuning;
  • workflows;
  • metrics;
  • evaluation. через Практична роль: stringr користувачі можуть чистити й опрацьовувати текстові інформаційні дані в таблицях. subset(cyl == 6)

Пакети:

Перевага CRAN: ERP-платформа пакетів R дуже широка, особливо для статистики, науки й прикладного аналізу даних.</syntaxhighlight> Головна структура R: data frame — це базовий формат для більшості задач аналізу даних. це мова програмування і середовище; так само реалізовано аналізу даних, візуалізації, data science, машинного навчання, наукових досліджень і підготовки відтворюваних аналітичних звітів виступає ключовою рисою статистичних обчислень забезпечується через R. )

У сучасному R так само виступає як base pipe `|>`:

'''R Markdown''' дає можливість поєднувати текст, R-код, графіки й результати в одному документі. '''Практична роль:''' R особливо сильна там, де потрібно оперативно перейти від сирих даних до статистичного висновку, графіка або звіту. y ~ x1 + x2
'''List''' — структура, яка здатна містити елементи різних типів. Приклад напрямів:
Приклад `while`:

library(shiny) result <- mtcars %>%

Регресія

<syntaxhighlight lang="r">

== Time series ==

* пошук pattern;
* заміна тексту;
* розділення рядків;
* об’єднання тексту;
* зміна регістру;
* регулярні вирази;
* очищення текстових колонок.<syntaxhighlight lang="r">
<div style="background:#eef2ff; border-left:6px solid #4f46e5; padding:12px; margin:12px 0;">
 summarise(avg_mpg = mean(mpg))

<syntaxhighlight lang="r">

'''Критично:''' пропущені значення можуть змінити результат аналізу. Приклад:
add <- function(a, b) {
 a + b
}

result <- add(2, 3)
print(result)
numbers <- c(1, 2, 3, 4, 5)
numbers * 2

R підтримує класичні цикли.

'''Основна ідея:''' R розроблена для роботи з даними: статистики, таблиць, моделей, графіків, досліджень і аналітичних звітів. Результат:

'''Перевага Shiny:''' аналітик здатна перетворити R-аналіз на інтерактивний застосунок без окремої frontend-розробки. Приклад:

* `forecast`;
* `fable`;
* `tsibble`;
* `zoo`;
* `xts`;
* `prophet`.== Функції ==
<syntaxhighlight lang="r">

== NA ==

} else {
== Статистика в R ==
== Packages ==
Приклади:
'''Практична роль:''' matrix зручна для числових обчислень, але для реальних таблиць із різними типами частіше використовують data frame. result <- mtcars |>
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
== Формули в R ==

{{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
}}

</div>

== Для чого застосовується для R ==

<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
R добре підходить для:

count <- 3

while (count > 0) {

Вектор містить елементи одного типу. Це таблиця, де колонки можуть мати різні типи. Приклад:

</div>

'''CRAN''' або '''Comprehensive R Archive Network'''  це провідний репозиторій пакетів R. '''NA''' означає відсутнє значення. * прогнозування;
* пояснення залежностей;
* статистичного висновку;
* економетрики;
* аналізу факторів;
* перевірки гіпотез.</div>

* `mean`;
* `median`;
* `sd`;
* `var`;
* `summary`;
* `quantile`;
* `cor`;
* `t.test`;
* `chisq.test`;
* `aov`;
* `lm`;
* `glm`. Приклад:
<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
== lubridate ==

== RStudio і Posit ==

== ggplot2 ==

'''Суть pipe:''' pipe дає можливість читати обробку даних як послідовність кроків зверху вниз. * аналіз таблиць;
* статистичні тести;
* регресія;
* класифікація;
* clustering;
* time series analysis;
* data visualization;
* dashboard;
* reporting;
* автоматизація процесів аналітики;
* наукові дослідження;
* обробка експериментальних даних;
* аналіз опитувань;
* фінансове моделювання;
* біоінформатика;
* економетрика. Їх потрібно виявляти, пояснювати й опрацьовувати. print("Minor")
= Мова програмування R =

library(stringr)

summary(mtcars)

* розширення можливостей R;
* роботи з конкретними форматами даних;
* статистичного аналізу;
* створення графіків;
* побудови моделей;
* підготовки звітів;
* створення вебзастосунків;
* інтеграцій із базами даних або API. labs(

* `ggplot2`;
* `dplyr`;
* `tidyr`;
* `readr`;
* `purrr`;
* `tibble`;
* `stringr`;
* `forcats`.<div style="background:#eafaf1; border-left:6px solid #2ecc71; padding:12px; margin:12px 0;">
'''критично:''' у R не завжди потрібно писати цикли. 2 4 6 8 10
summary <- mtcars %>%

R підтримує vectorized operations, тобто операції над усім вектором одразу. count <- count - 1 } </syntaxhighlight>

У tidyverse часто застосовується для `%>%`:

R виникла як реалізація ідей мови S, яка використовувалася для статистичних обчислень.

'''tidymodels'''  сучасна ERP-платформа R для machine learning у стилі tidyverse. data <- read_csv("data.csv")

До tidyverse належать:

У R змінні зазвичай створюються через оператор `<-`.

Приклад:

<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
'''readxl''' застосовується для для читання Excel-файлів. install.packages("ggplot2")
== apply-сімейство ==

<syntaxhighlight lang="r">

<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
Приклад `for`:
== tidyr ==

R має функції для сценарії використання операцій до структур даних. Саме тому її синтаксис і стандартні структури сильно орієнтовані на data analysis. Приклад:

Він базується на grammar of graphics. У R потрібно явно враховувати missing values.<div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">

* парсингу дат;
* виділення року, місяця, дня;
* роботи з timezone;
* обчислення періодів;
* аналізу часових даних;
* time series preprocessing. * `parsnip`;
* `recipes`;
* `workflows`;
* `rsample`;
* `yardstick`;
* `tune`. R розвивалась навколо потреб:

== Змінні ==
== Machine Learning у R ==

'''Головна сила R:''' статистичні функції виступає як природною частиною мови й екосистеми. * `caret`;
* `tidymodels`;
* `randomForest`;
* `xgboost`;
* `ranger`;
* `e1071`;
* `glmnet`;
* `nnet`;
* `keras`;
* `torch`;
* `mlr3`. Приклад:
Factors використовуються для:
values <- c(10, 20, 30, 40, 50)

mean(values)
sd(values)
summary(values)

R особливо популярна серед статистиків, аналітиків даних, дослідників, data scientists, біоінформатиків, економістів, соціологів, фінансових аналітиків і фахівців, які працюють із даними. print(i) Перевага tidymodels: вона дає єдиний і tidy-style підхід до побудови, навчання й оцінювання моделей. library(dplyr)

Приклад:

Перевага ggplot2: графік будується як набір шарів, тому його швидко поступово ускладнювати й налаштовувати. Функції потрібні для:

</syntaxhighlight>

Приклади задач:
<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">

R широко застосовується для для регресійного аналізу.

Перевага: R дає можливість поєднати аналіз даних, статистику, графіки й формування звітів в одному відтворюваному workflow. Data frame — одна з найважливіших структур у R.</syntaxhighlight>

Базові статистичні функції:

age <- 25 price <- 19.99 name <- "Alice" is_active <- TRUE </syntaxhighlight>

застосовується для для:

Суть функції: у R функції дозволяють перетворити одноразовий аналіз на повторюваний інструмент. library(lubridate)

Приклад:

  • `apply`;
  • `lapply`;
  • `sapply`;
  • `tapply`;
  • `mapply`.== stringr ==

R часто використовують для аналізу часових рядів. * повторного використання коду;

  • автоматизації аналізу;
  • створення власних обчислень;
  • зменшення дублювання;
  • тестування;
  • побудови пакетів.
    mpg ~ wt * cyl
    '''критично:''' формульний синтаксис R дуже зручний, але потрібно розуміти, що означають `+`, `*`, `:` і `.` у контексті моделей. Приклади:
    R застосовується для для машинного навчання. * лінійної алгебри;
    * статистики;
    * числових обчислень;
    * моделювання;
    * матричних операцій. ggplot2 застосовується для для:
    <syntaxhighlight lang="r">
    
    Shiny дає можливість:
    
    У цьому прикладі модель прогнозує `mpg` за змінними `wt` і `cyl`.<syntaxhighlight lang="r">
    </div>
    '''Tibble'''  сучасніша реліз системи data frame з tidyverse.<syntaxhighlight lang="r">
    
    <syntaxhighlight lang="r">
    <syntaxhighlight lang="r">
    
    <syntaxhighlight lang="r">
    
    '''Практична порада:''' правильна форма таблиці часто спрощує і аналіз, і графіки, і моделювання. '''Практична роль:''' R робить статистичне моделювання дуже доступним через формули на кшталт `y ~ x1 + x2`. '''Vector'''  базова структура даних у R. '''Практична роль:''' R має типи й структури, які дуже зручні саме для табличних і статистичних задач. * статистиків;
    * науковців;
    * аналітиків;
    * дослідників;
    * викладачів;
    * data scientists;
    * фахівців із прикладних даних. R має потужні функції ERP статистики з коробки.<syntaxhighlight lang="r">
    
    library(tidyr)
    </div>
    
     print("Adult")
    == dplyr ==
    library(ggplot2)
    <syntaxhighlight lang="r">
    library(tibble)
    <syntaxhighlight lang="r">
    
     x = "Вага",
    </div>
    
    Tibble має зручніший друк, кращу поведінку з типами й частіше застосовується для в tidyverse.== readr і readxl ==
    </div>
    
    Data frame застосовується для для:
    == Цикли ==
    data <- read_excel("report.xlsx")
    

mpg ~ wt + cyl

long_data <- pivot_longer(

data,
cols = starts_with("year_"),
names_to = "year",
values_to = "value"

) </syntaxhighlight> Умовні конструкції в R:

ui <- fluidPage(

sliderInput("n", "Кількість:", 1, 100, 50),
plotOutput("plot")

)

server <- function(input, output) {

output$plot <- renderPlot({
hist(rnorm(input$n))
})

}

shinyApp(ui, server) </syntaxhighlight>

items <- list(1:3, 4:6, 7:9)

result <- lapply(items, mean) print(result) </syntaxhighlight>

  • numeric;
  • integer;
  • character;
  • logical;
  • factor;
  • Date;
  • POSIXct;
  • vector;
  • matrix;
  • array;
  • list;
  • data frame;
  • tibble.
    Пакети використовуються для:
    Мова R застосовується для для задач, де потрібно аналізувати інформаційні дані, будувати статистичні моделі, перевіряти гіпотези, створювати графіки, цифровізувати звіти або виконувати дослідницькі обчислення. ```{r}
     count = n()
    mpg ~ wt
    Приклад:
    <div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
    Підключення пакета:
    
    </div>
    Пакети й підходи:
    users <- tibble(
     name = c("Alice", "Bob", "Carol"),
     age = c(25, 30, 28)
    )
    
    print(users)
    

Matrix — це двовимірна структура, де всі елементи мають один тип.== R Markdown ==

історія продукту R

Фрагмент:

}

  • табличних даних;
  • CSV;
  • результатів SQL-запитів;
  • статистичного аналізу;
  • побудови моделей;
  • візуалізації;
  • звітності. Основні задачі:

Суть vectorization: у R часто не потрібно писати цикл для кожного елемента — операційна дія здатна застосовуватися до всього вектора. Приклад:

library(readxl)

values <- c(10, 20, NA, 40)

mean(values) mean(values, na.rm = TRUE) </syntaxhighlight>

model <- lm(mpg ~ wt + cyl, data = mtcars)
summary(model)

print(summary)

library(readr)

  • статистики;
  • візуалізації;
  • машинного навчання;
  • роботи з даними;
  • звітності;
  • часових рядів;
  • біоінформатики;
  • економетрики;
  • геоданих;
  • web apps. Package у R — це набір функцій, даних, документації й іноді compiled code. Формули — важлива частина статистичного синтаксису R.== CRAN ==
  • читабельний код;
  • pipe workflow;
  • tidy data;
  • трансформацію таблиць;
  • візуалізацію;
  • імпорт даних;
  • роботу з текстом;
  • функціональну обробку. Для векторних умов часто використовують `ifelse`:
geom_point() +

Головна перевага tidyverse: він дає цілісний, зручний і читабельний стиль роботи з даними. age <- 20

if (age >= 18) {

m <- matrix(1:6, nrow = 2, ncol = 3) print(m) </syntaxhighlight>

RStudio застосовується для для:

Factor — тип даних для категоріальних змінних. Типові задачі:

install.packages("dplyr")

Типові сценарії використання R:

filter(cyl == 6) %>%

mpg ~ . avg_mpg = mean(mpg),

ggplot(mtcars, aes(x = wt, y = mpg)) +

Суть змінної: змінна в R зберігає об’єкт: число, текст, вектор, таблицю, модель або інший результат обчислення. group_by(cyl) %>%

</syntaxhighlight>

== Vector ==