Hoppa till innehåll
cd /languages
  • Statistisk beräkning
  • Programmering
  • Stöd för AST och symboler

R i Maguyva: kodgrafer för analys- och paketkod

Maguyva stöder R med AST, symboler och graf, så att AI-agenter kan följa funktioner, S3- och S4-dispatch och modellanpassningsanrop i R-skript och -paket.

Där R får ytliga AI-verktyg att snubbla

R lägger basfunktioner, paketfunktioner och dina egna i ett enda platt namnutrymme. Punkter är en del av namnen, inte medlemsåtkomst: is.na, data.frame och print.summary_table är enskilda identifierare. Ett verktyg som läser print.summary_table som en metod på print får strukturen fel, och ett som registrerar varje basanrop begraver dina funktioner under c() och paste().

Maguyva håller R-namn hela och filtrerar bort bruset från basfunktionerna, så att en agent ser de funktioner som din analys faktiskt beror på.

Vad Maguyva extraherar i R

Maguyva kopplar .R-, .Rmd- och .Rnw-filer till R. Funktioner som tilldelas ett namn, som clean_survey <- function(df), extraheras under det namnet, och anonyma funktioner behandlas inte som definitioner. Namn med punkter delas aldrig upp i mottagare och medlem.

Vissa anrop i bas-R ligger medvetet kvar i grafen, eftersom de visar hur analyskoden hänger ihop: S3- och S4-dispatch (UseMethod, standardGeneric), apply-familjen (lapply, sapply, vapply, mapply), modellanpassning (lm, predict, anova), paketladdning (library, require) och felhantering med tryCatch.

Grafen registrerar också instansiering samt läsningar och skrivningar.

Exempel på prompter för agenter

  • “Vem anropar clean_survey, och vilka modeller använder dess utdata?” (find_symbol, sedan dependency_search incoming)
  • “Vilka funktioner anropar fit_model?” (dependency_search)
  • “Spåra vägen från load_raw_data till den slutliga regressionen.” (get_task_context)

Kända begränsningar

  • Omkring 800 namn från bas-R, stats och graphics filtreras bort från relationerna, som print, paste, c, data.frame, diagramanrop och slumptalsgeneratorer. Använd text_pattern_search för dem.
  • R skapar klasser och laddar paket med vanliga funktionsanrop, så presetet classes, imports och variables i structural_search väljer ingenting. Använd find_symbol och text_pattern_search.
  • .Rmd- och .Rnw-filer läses i sin helhet med R-grammatiken i stället för chunk för chunk, så räkna med ofullständiga resultat för R Markdown- och Sweave-dokument.
  • R har ingen dekoratorsyntax, så dekoratorrelationer är markerade som ej tillämpliga.

Nästa steg

Anslut ett repo med snabbstarten och kontrollera sedan stödmatrisen på kompatibilitetssidan. För blandade datavetenskapsrepon, läs även guiden för Python.

Bäst lämpad för

  • > R-paket med många exporterade funktioner, S3-metoder och interna hjälpfunktioner.
  • > Analyspipelines uppdelade på skript som delar funktioner för datatvätt och modellering.
  • > Datateam som lämnar över R-kod till AI-agenter som behöver se vilka funktioner som matar vilka modeller.

Agentarbetsflöden

  • > Hitta alla anropare av en datatvättfunktion innan kolumnerna den returnerar ändras.
  • > Spåra vilka funktioner som dispatchar via `UseMethod` och var deras metoder finns.
  • > Kartlägga vägen från inläsning av rådata till en anpassad modell.

Motordetaljer

  • > R-stödet omfattar `.R`, `.Rmd` och `.Rnw`. Funktioner som tilldelas ett namn extraheras under det namnet, och namn med punkter som `data.frame` hålls hela.
  • > S3- och S4-dispatch (`UseMethod`, `standardGeneric`), apply-familjen, `lm`, `predict` och `tryCatch` ligger medvetet kvar i grafen.
  • > Omkring 800 namn från bas-R, `stats` och `graphics`, som `print`, `paste` och `c`, filtreras bort från relationerna.

Användbara MCP-ingångar

  • find_symbol

    Använd det för namnet på en tvätt-, modellerings- eller S3-metod när du behöver definitionen och anroparna.

  • dependency_search

    Använd incoming-traversering på en hjälpfunktion för att se vilka analyser som beror på den innan dess utdata ändras.

  • get_task_context

    Använd det för prompter som "spåra vägen från inläsning av rådata till den slutliga regressionen".