Naar inhoud springen
cd /languages
  • Statistisch rekenen
  • Programmeren
  • AST- en symboolondersteuning

R in Maguyva: codegrafen voor analyse- en packagecode

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.

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 en bekijk daarna de ondersteuningsmatrix op de compatibiliteitspagina. Lees voor gemengde data-science-repositories ook de Python-gids.

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.

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."