# R i Maguyva: kodegrafer til analyse- og pakkekode

Canonical source: https://maguyva.ai/da/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 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.

## Øjebliksbillede af understøttelse

- Niveau: AST- og symbolunderstøttelse
- Programmering
- Filendelser: .r, .rmd, .rnw
- Rigtig AST-parsing til syntaksbevidst søgning og strukturel kontekst.
- Navngivne symboler understøtter semantisk opslag og krydsreferencer. Grafnavigation er tilgængelig, når relationsudtræk er aktiveret.
- Dette sprog bidrager med symboler og relationer til grafbaseret søgning; de understøttede kanttyper varierer med sprogets egne konstruktioner.
- Både AST-parsing og symboludtræk er tilgængelige.

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

## 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](/da/docs/quickstart), og se derefter understøttelsesmatricen på [kompatibilitetssiden](/da/docs/compatibility). For blandede data science-repositories kan du også læse [guiden til Python](/da/languages/python).

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