# R i Maguyva: kodegrafer for analyse- og pakkekode

Canonical source: https://maguyva.ai/nb/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 støtter R med AST, symboler og graf, slik at AI-agenter kan følge funksjoner, S3- og S4-dispatch og modelltilpasningskall i R-skript og -pakker.

## Støtteoversikt

- Nivå: AST- og symbolstøtte
- Programmering
- Filendelser: .r, .rmd, .rnw
- Ekte AST-analyse for syntaksbevisst søk og strukturell kontekst.
- Navngitte symboler mater semantisk oppslag og kryssreferanser. Grafnavigasjon er tilgjengelig når relasjonsuttrekk er aktivert.
- Dette språket bidrar med symboler og relasjoner til grafbasert søk; støttede kanttyper varierer med språkets egne konstruksjoner.
- Både AST-analyse og symboluttrekk er tilgjengelige.

## Best egnet

- R-pakker med mange eksporterte funksjoner, S3-metoder og interne hjelpefunksjoner.
- Analysepipelines fordelt på skript som deler funksjoner for datavask og modellering.
- Datateam som gir R-kode til AI-agenter som trenger å se hvilke funksjoner som mater hvilke modeller.

## Agent-arbeidsflyter

- Finne alle kallere av en datavaskfunksjon før kolonnene den returnerer endres.
- Spore hvilke funksjoner som dispatcher via `UseMethod` og hvor metodene deres ligger.
- Kartlegge veien fra innlasting av rådata til en tilpasset modell.

## Der R får overfladiske AI-verktøy til å snuble

R legger basefunksjoner, pakkefunksjoner og dine egne i ett flatt navnerom. Punktum er en del av navnene, ikke medlemstilgang: `is.na`, `data.frame` og `print.summary_table` er enkeltidentifikatorer. Et verktøy som leser `print.summary_table` som en metode på `print`, får strukturen feil, og et som registrerer hvert basekall, begraver funksjonene dine under `c()` og `paste()`.

Maguyva holder R-navn hele og filtrerer bort støyen fra basefunksjonene, slik at en agent ser funksjonene analysen din faktisk avhenger av.

## Hva Maguyva henter ut i R

Maguyva knytter `.R`-, `.Rmd`- og `.Rnw`-filer til R. Funksjoner som tilordnes et navn, som `clean_survey <- function(df)`, hentes ut under det navnet, og anonyme funksjoner behandles ikke som definisjoner. Navn med punktum deles aldri opp i mottaker og medlem.

Noen kall i base-R blir bevisst værende i grafen, fordi de viser hvordan analysekoden henger sammen: S3- og S4-dispatch (`UseMethod`, `standardGeneric`), apply-familien (`lapply`, `sapply`, `vapply`, `mapply`), modelltilpasning (`lm`, `predict`, `anova`), pakkelasting (`library`, `require`) og feilhåndtering med `tryCatch`.

Grafen registrerer også instansiering og lesinger og skrivinger.

## Eksempler på prompter for agenter

- «Hvem kaller `clean_survey`, og hvilke modeller bruker utdataene?» (`find_symbol`, deretter `dependency_search` incoming)
- «Hvilke funksjoner kaller `fit_model`?» (`dependency_search`)
- «Spor veien fra `load_raw_data` til den endelige regresjonen.» (`get_task_context`)

## Kjente begrensninger

- Rundt 800 navn fra base-R, `stats` og `graphics` filtreres bort fra relasjonene, som `print`, `paste`, `c`, `data.frame`, plottekall og tilfeldighetsgeneratorer. Bruk `text_pattern_search` for dem.
- R lager klasser og laster pakker med vanlige funksjonskall, så presetene `classes`, `imports` og `variables` i `structural_search` velger ingenting. Bruk `find_symbol` og `text_pattern_search`.
- `.Rmd`- og `.Rnw`-filer leses i sin helhet med R-grammatikken i stedet for bit for bit, så regn med ufullstendige resultater for R Markdown- og Sweave-dokumenter.
- R har ikke dekoratorsyntaks, så dekoratorrelasjoner er merket som ikke relevante.

## Neste steg

Koble til et repositorium med [hurtigstarten](/nb/docs/quickstart), og se deretter støttematrisen på [kompatibilitetssiden](/nb/docs/compatibility). For blandede datavitenskapsrepositorier bør du også lese [veiledningen for Python](/nb/languages/python).

## Motordetaljer

- R-støtten knytter `.R`, `.Rmd` og `.Rnw` til R. Funksjoner som tilordnes et navn, hentes ut under det navnet, og navn med punktum som `data.frame` holdes hele.
- S3- og S4-dispatch (`UseMethod`, `standardGeneric`), apply-familien, `lm`, `predict` og `tryCatch` blir bevisst værende i grafen.
- Rundt 800 navn fra base-R, `stats` og `graphics`, som `print`, `paste` og `c`, filtreres bort fra relasjonene.

## Nyttige MCP-inngangspunkter

- `find_symbol`: Bruk det for navnet på en vaske-, modellerings- eller S3-metode når du trenger definisjonen og kallerne.
- `dependency_search`: Bruk incoming-traversering på en hjelpefunksjon for å se hvilke analyser som avhenger av den før utdataene endres.
- `get_task_context`: Bruk det for prompter som «spor veien fra innlasting av rådata til den endelige regresjonen».
