# R v Maguyva: grafy kódu pro analýzy a balíčky

Canonical source: https://maguyva.ai/cs/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 podporuje R s AST, symboly a grafem, takže AI agenti sledují funkce, dispatch S3 a S4 a volání pro fitování modelů napříč skripty a balíčky R.

## Přehled podpory

- Úroveň: Podpora AST a symbolů
- Programování
- Přípony: .r, .rmd, .rnw
- Skutečné parsování AST pro vyhledávání citlivé na syntaxi a strukturální kontext.
- Pojmenované symboly napájejí sémantické vyhledávání a křížové odkazy. Navigace v grafu je k dispozici, když je povolena extrakce vztahů.
- Tento jazyk přispívá symboly a vztahy do vyhledávání využívajícího graf; podporované typy hran se liší podle jeho nativních konstrukcí.
- K dispozici je parsování AST i extrakce symbolů.

## Nejlépe se hodí pro

- Balíčky R s mnoha exportovanými funkcemi, metodami S3 a interními pomocnými funkcemi.
- Analytické pipeline rozdělené do skriptů, které sdílejí funkce pro čištění dat a modelování.
- Datové týmy, které předávají kód R AI agentům, jež potřebují vidět, které funkce napájejí které modely.

## Workflow agentů

- Najít všechna volání funkce pro čištění dat před změnou sloupců, které vrací.
- Vysledovat, které funkce rozesílají volání přes `UseMethod` a kde jsou jejich metody.
- Zmapovat cestu od načtení surových dat k nafitovanému modelu.

## Kde R podráží povrchní AI nástroje

R dává základní funkce, funkce z balíčků i vaše vlastní do jednoho plochého jmenného prostoru. Tečky jsou součástí jmen, ne přístupem ke členu: `is.na`, `data.frame` i `print.summary_table` jsou jednotlivé identifikátory. Nástroj, který čte `print.summary_table` jako metodu na `print`, pochopí strukturu špatně, a nástroj, který zaznamená každé základní volání, pohřbí vaše funkce pod `c()` a `paste()`.

Maguyva nechává jména v R celá a odfiltruje šum základních funkcí, takže agent vidí funkce, na kterých vaše analýza skutečně závisí.

## Co Maguyva v R extrahuje

Maguyva přiřazuje soubory `.R`, `.Rmd` a `.Rnw` k jazyku R. Funkce přiřazené jménu, například `clean_survey <- function(df)`, se extrahují pod tímto jménem a anonymní funkce se za definice nepovažují. Jména s tečkami se nikdy nedělí na příjemce a člena.

Některá volání základního R v grafu zůstávají záměrně, protože ukazují, jak je analytický kód propojený: dispatch S3 a S4 (`UseMethod`, `standardGeneric`), rodina apply (`lapply`, `sapply`, `vapply`, `mapply`), fitování modelů (`lm`, `predict`, `anova`), načítání balíčků (`library`, `require`) a ošetření chyb pomocí `tryCatch`.

Graf zaznamenává také vytváření instancí a čtení a zápisy.

## Ukázkové prompty pro agenty

- „Kdo volá `clean_survey` a které modely používají její výstup?“ (`find_symbol`, pak `dependency_search` incoming)
- „Které funkce volají `fit_model`?“ (`dependency_search`)
- „Vysleduj cestu od `load_raw_data` k závěrečné regresi.“ (`get_task_context`)

## Známá omezení

- Asi 800 názvů ze základního R, `stats` a `graphics` se z relací odfiltruje, například `print`, `paste`, `c`, `data.frame`, volání pro grafy a generátory náhodných čísel. Pro ně použijte `text_pattern_search`.
- R vytváří třídy a načítá balíčky běžnými voláními funkcí, takže presety `classes`, `imports` a `variables` v `structural_search` nic nevyberou. Použijte `find_symbol` a `text_pattern_search`.
- Soubory `.Rmd` a `.Rnw` se čtou celé gramatikou R, ne po jednotlivých blocích kódu, takže u dokumentů R Markdown a Sweave počítejte s neúplnými výsledky.
- R nemá syntaxi dekorátorů, proto jsou relace dekorátorů označeny jako nepoužitelné.

## Další kroky

Připojte repozitář podle [rychlého startu](/cs/docs/quickstart) a pak si prohlédněte matici podpory na [stránce kompatibility](/cs/docs/compatibility). U smíšených datových repozitářů si přečtěte i [průvodce jazykem Python](/cs/languages/python).

## Podrobnosti enginu

- Podpora R přiřazuje `.R`, `.Rmd` a `.Rnw` k jazyku R. Funkce přiřazené jménu se extrahují pod tímto jménem a jména s tečkami jako `data.frame` zůstávají celá.
- Dispatch S3 a S4 (`UseMethod`, `standardGeneric`), rodina apply, `lm`, `predict` a `tryCatch` v grafu záměrně zůstávají.
- Asi 800 názvů ze základního R, `stats` a `graphics`, například `print`, `paste` a `c`, se z relací odfiltruje.

## Užitečné vstupní body MCP

- `find_symbol`: Použijte ho pro název funkce pro čištění, modelování nebo metody S3, když potřebujete definici a volající.
- `dependency_search`: Použijte incoming procházení na pomocné funkci, abyste před změnou jejího výstupu viděli, které analýzy na ní závisí.
- `get_task_context`: Použijte ho pro prompty jako „vysleduj cestu od načtení surových dat k závěrečné regresi“.
