Spring til indhold
cd /languages
  • Statistiske beregninger
  • Programmering
  • AST- og symbolunderstøttelse

R i Maguyva: kodegrafer til analyse- og pakkekode

Maguyva understøtter R med AST, symboler og graf, så AI-agenter kan følge funktioner, S3- og S4-dispatch og modeltilpasningskald i R-scripts og -pakker.

Hvor R får overfladiske AI-værktøjer til at snuble

R lægger basisfunktioner, pakkefunktioner og dine egne i ét fladt navnerum. Punktummer er en del af navnene, ikke medlemsadgang: is.na, data.frame og print.summary_table er enkelte identifikatorer. Et værktøj, der læser print.summary_table som en metode på print, får strukturen forkert, og et, der registrerer hvert basiskald, begraver dine funktioner under c() og paste().

Maguyva holder R-navne hele og filtrerer støjen fra basisfunktionerne fra, så en agent ser de funktioner, din analyse faktisk afhænger af.

Hvad Maguyva udtrækker i R

Maguyva knytter .R-, .Rmd- og .Rnw-filer til R. Funktioner, der tildeles et navn, som clean_survey <- function(df), udtrækkes under det navn, og anonyme funktioner behandles ikke som definitioner. Navne med punktummer deles aldrig op i modtager og medlem.

Nogle kald i base-R bliver bevidst i grafen, fordi de viser, hvordan analysekoden hænger sammen: S3- og S4-dispatch (UseMethod, standardGeneric), apply-familien (lapply, sapply, vapply, mapply), modeltilpasning (lm, predict, anova), indlæsning af pakker (library, require) og fejlhåndtering med tryCatch.

Grafen registrerer også instansiering og læsninger og skrivninger.

Eksempler på prompts til agenter

  • “Hvem kalder clean_survey, og hvilke modeller bruger dens output?” (find_symbol, derefter dependency_search incoming)
  • “Hvilke funktioner kalder fit_model?” (dependency_search)
  • “Spor vejen fra load_raw_data til den endelige regression.” (get_task_context)

Kendte begrænsninger

  • Omkring 800 navne fra base-R, stats og graphics filtreres fra relationerne, som print, paste, c, data.frame, plotkald og tilfældighedsgeneratorer. Brug text_pattern_search til dem.
  • R opretter klasser og indlæser pakker med almindelige funktionskald, så presettene classes, imports og variables i structural_search vælger intet. Brug find_symbol og text_pattern_search.
  • .Rmd- og .Rnw-filer læses i deres helhed med R-grammatikken i stedet for chunk for chunk, så regn med ufuldstændige resultater for R Markdown- og Sweave-dokumenter.
  • R har ingen dekoratorsyntaks, så dekoratorrelationer er markeret som ikke relevante.

Næste skridt

Tilslut et repository med hurtigstarten, og se derefter understøttelsesmatricen på kompatibilitetssiden. For blandede data science-repositories kan du også læse guiden til Python.

Bedst egnet til

  • > R-pakker med mange eksporterede funktioner, S3-metoder og interne hjælpefunktioner.
  • > Analysepipelines fordelt på scripts, der deler funktioner til datarensning og modellering.
  • > Datateams, der giver R-kode til AI-agenter, som skal kunne se, hvilke funktioner der fodrer hvilke modeller.

Agent-arbejdsgange

  • > Finde alle kaldere af en datarensningsfunktion, før de kolonner, den returnerer, ændres.
  • > Spore hvilke funktioner der dispatcher via `UseMethod`, og hvor deres metoder ligger.
  • > Kortlægge vejen fra indlæsning af rådata til en tilpasset model.

Motordetaljer

  • > R-understøttelsen knytter `.R`, `.Rmd` og `.Rnw` til R. Funktioner, der tildeles et navn, udtrækkes under det navn, og navne med punktummer som `data.frame` holdes hele.
  • > S3- og S4-dispatch (`UseMethod`, `standardGeneric`), apply-familien, `lm`, `predict` og `tryCatch` bliver bevidst i grafen.
  • > Omkring 800 navne fra base-R, `stats` og `graphics`, som `print`, `paste` og `c`, filtreres fra relationerne.

Nyttige MCP-indgange

  • find_symbol

    Brug det til navnet på en rense-, modellerings- eller S3-metode, når du har brug for definitionen og kalderne.

  • dependency_search

    Brug incoming-traversering på en hjælpefunktion for at se, hvilke analyser der afhænger af den, før dens output ændres.

  • get_task_context

    Brug det til prompts som "spor vejen fra indlæsning af rådata til den endelige regression".