# R in Maguyva: codegrafen voor analyse- en packagecode

Canonical source: https://maguyva.ai/nl/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 ondersteunt R met AST, symbolen en graaf, zodat AI-agents functies, S3- en S4-dispatch en modelfit-aanroepen volgen in R-scripts en -packages.

## Ondersteuningsoverzicht

- Tier: AST- en symboolondersteuning
- Programmeren
- Extensies: .r, .rmd, .rnw
- Echte AST-parsing voor syntaxbewust zoeken en structurele context.
- Benoemde symbolen voeden semantische lookup en kruisverwijzingen. Graafnavigatie is beschikbaar wanneer relatie-extractie is ingeschakeld.
- Deze taal draagt symbolen en relaties bij aan graafbewust zoeken; ondersteunde kanttypen variëren met de eigen constructies van de taal.
- Zowel AST-parsing als symboolextractie zijn beschikbaar.

## Beste toepassing

- R-packages met veel geëxporteerde functies, S3-methoden en interne helpers.
- Analysepipelines verspreid over scripts die functies voor dataopschoning en modellering delen.
- Datateams die R-code overdragen aan AI-agents die moeten zien welke functies welke modellen voeden.

## Agentworkflows

- Alle aanroepers van een dataopschoningsfunctie vinden voordat de geretourneerde kolommen veranderen.
- Volgen welke functies via `UseMethod` dispatchen en waar hun methoden staan.
- Het pad van het laden van ruwe data tot een gefit model in kaart brengen.

## Waar R oppervlakkige AI-tools laat struikelen

R zet basisfuncties, packagefuncties en je eigen functies in één platte namespace. Punten horen bij de naam en zijn geen membertoegang: `is.na`, `data.frame` en `print.summary_table` zijn elk één identifier. Een tool die `print.summary_table` leest als een methode op `print`, ziet de structuur verkeerd, en een tool die elke basisaanroep vastlegt, begraaft je functies onder `c()` en `paste()`.

Maguyva houdt R-namen heel en filtert de ruis van basisfuncties weg, zodat een agent de functies ziet waarvan je analyse echt afhangt.

## Wat Maguyva in R extraheert

Maguyva koppelt `.R`-, `.Rmd`- en `.Rnw`-bestanden aan R. Functies die aan een naam worden toegewezen, zoals `clean_survey <- function(df)`, worden onder die naam geëxtraheerd, en anonieme functies gelden niet als definities. Namen met punten worden nooit opgesplitst in receiver en member.

Sommige base-R-aanroepen blijven bewust in de graaf, omdat ze laten zien hoe analysecode is bedraad: S3- en S4-dispatch (`UseMethod`, `standardGeneric`), de apply-familie (`lapply`, `sapply`, `vapply`, `mapply`), modelfitting (`lm`, `predict`, `anova`), het laden van packages (`library`, `require`) en foutafhandeling met `tryCatch`.

De graaf legt ook instantiatie en lees- en schrijfacties vast.

## Voorbeeldprompts voor agents

- "Wie roept `clean_survey` aan, en welke modellen gebruiken de uitvoer?" (`find_symbol`, daarna `dependency_search` incoming)
- "Welke functies roepen `fit_model` aan?" (`dependency_search`)
- "Volg het pad van `load_raw_data` naar de uiteindelijke regressie." (`get_task_context`)

## Bekende beperkingen

- Ongeveer 800 namen uit base R, `stats` en `graphics` worden uit de relaties gefilterd, zoals `print`, `paste`, `c`, `data.frame`, plotaanroepen en randomgeneratoren. Gebruik daarvoor `text_pattern_search`.
- R maakt klassen en laadt packages met gewone functieaanroepen, dus de presets `classes`, `imports` en `variables` in `structural_search` selecteren niets. Gebruik `find_symbol` en `text_pattern_search`.
- `.Rmd`- en `.Rnw`-bestanden worden in hun geheel met de R-grammatica gelezen in plaats van chunk voor chunk, dus reken op onvolledige resultaten voor R Markdown- en Sweave-documenten.
- R heeft geen decoratorsyntaxis, dus decoratorrelaties zijn als niet van toepassing gemarkeerd.

## Volgende stappen

Koppel een repository via de [snelstart](/nl/docs/quickstart) en bekijk daarna de ondersteuningsmatrix op de [compatibiliteitspagina](/nl/docs/compatibility). Lees voor gemengde data-science-repositories ook de [Python-gids](/nl/languages/python).

## Enginedetails

- R-ondersteuning koppelt `.R`, `.Rmd` en `.Rnw` aan R. Functies die aan een naam worden toegewezen, worden onder die naam geëxtraheerd, en namen met punten zoals `data.frame` blijven heel.
- S3- en S4-dispatch (`UseMethod`, `standardGeneric`), de apply-familie, `lm`, `predict` en `tryCatch` blijven bewust in de graaf.
- Ongeveer 800 namen uit base R, `stats` en `graphics`, zoals `print`, `paste` en `c`, worden uit de relaties gefilterd.

## Nuttige MCP-instappunten

- `find_symbol`: Gebruik het voor de naam van een opschoon-, modelleer- of S3-methode wanneer je de definitie en aanroepers nodig hebt.
- `dependency_search`: Gebruik incoming-traversal op een helperfunctie om te zien welke analyses ervan afhangen voordat de uitvoer verandert.
- `get_task_context`: Gebruik het voor prompts als "volg het pad van het laden van ruwe data naar de uiteindelijke regressie."
