# R у Maguyva: графи коду для аналітики й пакетів

Canonical source: https://maguyva.ai/uk/languages/r

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva підтримує R з AST, символами та графом, щоб ШІ-агенти могли простежувати функції, диспетчеризацію S3 і S4 та виклики підгонки моделей у скриптах і пакетах R.

## Знімок підтримки

- Рівень: Підтримка AST і символів
- Програмування
- Розширення: .r, .rmd, .rnw
- Справжній розбір AST для пошуку з урахуванням синтаксису та структурного контексту.
- Іменовані символи забезпечують семантичний пошук і перехресні посилання. Навігація графом доступна, коли ввімкнено видобування зв’язків.
- Ця мова додає символи та зв’язки до пошуку з урахуванням графа; підтримувані типи ребер залежать від притаманних їй конструкцій.
- Доступні як розбір AST, так і видобування символів.

## Найкраще підходить

- Пакети R з багатьма експортованими функціями, методами S3 і внутрішніми допоміжними функціями.
- Аналітичні конвеєри, розбиті на скрипти, що спільно використовують функції очищення даних і моделювання.
- Команди даних, які передають код на R ШІ-агентам, що мають бачити, які функції живлять які моделі.

## Робочі процеси агента

- Знайти всі виклики функції очищення даних, перш ніж змінювати стовпці, які вона повертає.
- Простежити, які функції диспетчеризують через `UseMethod` і де розташовані їхні методи.
- Скласти карту шляху від завантаження сирих даних до підігнаної моделі.

## Де R збиває з пантелику поверхові ШІ-інструменти

R розміщує базові функції, функції пакетів і ваші функції в одному пласкому просторі імен. Крапки є частиною імені, а не доступом до члена: `is.na`, `data.frame` і `print.summary_table` є цілісними ідентифікаторами. Інструмент, що читає `print.summary_table` як метод у `print`, неправильно розуміє структуру, а інструмент, що записує кожен базовий виклик, ховає ваші функції під `c()` і `paste()`.

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

## Що Maguyva витягує з R

Maguyva зіставляє файли `.R`, `.Rmd` і `.Rnw` з R. Функції, присвоєні імені, як-от `clean_survey <- function(df)`, витягуються під цим ім'ям; анонімні функції не вважаються визначеннями. Імена з крапками ніколи не розбиваються на отримувача й член.

Деякі базові виклики R навмисно лишено в графі, бо вони показують, як пов'язаний аналітичний код: диспетчеризація S3 і S4 (`UseMethod`, `standardGeneric`), сімейство apply (`lapply`, `sapply`, `vapply`, `mapply`), підгонка моделей (`lm`, `predict`, `anova`), завантаження пакетів (`library`, `require`) та обробка помилок через `tryCatch`.

Граф також фіксує створення екземплярів, читання й запис.

## Приклади промптів для агентів

- «Хто викликає `clean_survey` і які моделі використовують її результат?» (`find_symbol`, потім `dependency_search` за вхідними зв'язками)
- «Які функції викликають `fit_model`?» (`dependency_search`)
- «Простеж шлях від `load_raw_data` до підсумкової регресії.» (`get_task_context`)

## Відомі обмеження

- Близько 800 імен із базового R, `stats` і `graphics` відфільтровано зі зв'язків, наприклад `print`, `paste`, `c`, `data.frame`, виклики побудови графіків і генератори випадкових чисел. Для них використовуйте `text_pattern_search`.
- R створює класи й завантажує пакети звичайними викликами функцій, тому пресети `classes`, `imports` і `variables` у `structural_search` нічого не вибирають. Використовуйте `find_symbol` і `text_pattern_search`.
- Файли `.Rmd` і `.Rnw` читаються повністю граматикою R, а не за фрагментами; для документів R Markdown і Sweave результати можуть бути неповними.
- У R немає синтаксису декораторів, тому зв'язки декораторів позначено як незастосовні.

## Наступні кроки

Під'єднайте репозиторій за [швидким стартом](/uk/docs/quickstart), потім перегляньте матрицю підтримки на [сторінці сумісності](/uk/docs/compatibility). Для змішаних репозиторіїв з науки про дані прочитайте також [посібник із мови Python](/uk/languages/python).

## Деталі рушія

- Підтримка R зіставляє файли `.R`, `.Rmd` і `.Rnw` з R. Функції, присвоєні імені, витягуються під цим ім'ям, а імена з крапками на кшталт `data.frame` лишаються цілими.
- Диспетчеризацію S3 і S4 (`UseMethod`, `standardGeneric`), сімейство apply, `lm`, `predict` і `tryCatch` навмисно лишено в графі.
- Близько 800 імен із базового R, `stats` і `graphics`, як-от `print`, `paste` і `c`, відфільтровано зі зв'язків.

## Корисні точки входу MCP

- `find_symbol`: Використовуйте для імені функції очищення, моделювання чи методу S3, коли потрібні визначення й виклики.
- `dependency_search`: Використовуйте обхід вхідних зв'язків, щоб побачити, які аналізи залежать від допоміжної функції, перш ніж змінювати її результат.
- `get_task_context`: Використовуйте для промптів на кшталт «простеж шлях від завантаження сирих даних до підсумкової регресії».
