# R in Maguyva: Code-Graphen für Analyse- und Paketcode

Canonical source: https://maguyva.ai/de/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 unterstützt R mit AST, Symbolen und Graph, damit KI-Agenten Funktionen, S3- und S4-Dispatch sowie Modellanpassungsaufrufe über R-Skripte und -Pakete hinweg verfolgen.

## Unterstützungsüberblick

- Stufe: AST- und Symbol-Support
- Programmierung
- Dateiendungen: .r, .rmd, .rnw
- Echtes AST-Parsing für syntaxbewusste Suche und strukturellen Kontext.
- Benannte Symbole speisen semantisches Lookup und Cross-Referenzierung. Graph-Navigation ist verfügbar, wenn die Beziehungsextraktion aktiviert ist.
- Diese Sprache liefert Symbole und Beziehungen für die graphgestützte Suche; die unterstützten Kantentypen variieren je nach nativen Konstrukten der Sprache.
- AST-Parsing und Symbolextraktion sind beide verfügbar.

## Am besten geeignet

- R-Pakete mit vielen exportierten Funktionen, S3-Methoden und internen Helfern.
- Analyse-Pipelines, verteilt auf Skripte, die sich Funktionen zur Datenbereinigung und Modellierung teilen.
- Datenteams, die R-Code an KI-Agenten übergeben, die sehen müssen, welche Funktionen welche Modelle speisen.

## Agentenabläufe

- Alle Aufrufer einer Datenbereinigungsfunktion finden, bevor sich die zurückgegebenen Spalten ändern.
- Verfolgen, welche Funktionen über `UseMethod` dispatchen und wo ihre Methoden liegen.
- Den Weg vom Laden der Rohdaten bis zum angepassten Modell abbilden.

## Wo R oberflächliche KI-Tools ins Stolpern bringt

R legt Basisfunktionen, Paketfunktionen und deine eigenen in einen flachen Namensraum. Punkte gehören zum Namen und sind kein Memberzugriff: `is.na`, `data.frame` und `print.summary_table` sind jeweils ein einziger Bezeichner. Ein Tool, das `print.summary_table` als Methode auf `print` liest, erfasst die Struktur falsch, und eines, das jeden Basisaufruf erfasst, begräbt deine Funktionen unter `c()` und `paste()`.

Maguyva lässt R-Namen ganz und filtert das Rauschen der Basisfunktionen heraus, damit ein Agent die Funktionen sieht, von denen deine Analyse tatsächlich abhängt.

## Was Maguyva in R extrahiert

Maguyva ordnet `.R`-, `.Rmd`- und `.Rnw`-Dateien R zu. Funktionen, die einem Namen zugewiesen werden, etwa `clean_survey <- function(df)`, werden unter diesem Namen extrahiert, und anonyme Funktionen gelten nicht als Definitionen. Namen mit Punkten werden nie in Receiver und Member zerlegt.

Einige Aufrufe aus Basis-R bleiben bewusst im Graphen, weil sie zeigen, wie Analysecode verdrahtet ist: S3- und S4-Dispatch (`UseMethod`, `standardGeneric`), die apply-Familie (`lapply`, `sapply`, `vapply`, `mapply`), Modellanpassung (`lm`, `predict`, `anova`), das Laden von Paketen (`library`, `require`) und Fehlerbehandlung mit `tryCatch`.

Der Graph erfasst außerdem Instanziierung sowie Lese- und Schreibzugriffe.

## Beispiel-Prompts für Agenten

- „Wer ruft `clean_survey` auf, und welche Modelle nutzen die Ausgabe?“ (`find_symbol`, dann `dependency_search` incoming)
- „Welche Funktionen rufen `fit_model` auf?“ (`dependency_search`)
- „Verfolge den Weg von `load_raw_data` bis zur finalen Regression.“ (`get_task_context`)

## Bekannte Grenzen

- Etwa 800 Namen aus Basis-R, `stats` und `graphics` werden aus den Beziehungen gefiltert, etwa `print`, `paste`, `c`, `data.frame`, Plot-Aufrufe und Zufallszahlengeneratoren. Verwende dafür `text_pattern_search`.
- R erzeugt Klassen und lädt Pakete mit gewöhnlichen Funktionsaufrufen, daher wählen die Presets `classes`, `imports` und `variables` in `structural_search` nichts aus. Verwende `find_symbol` und `text_pattern_search`.
- `.Rmd`- und `.Rnw`-Dateien werden als Ganzes mit der R-Grammatik gelesen statt Chunk für Chunk; rechne bei R-Markdown- und Sweave-Dokumenten also mit unvollständigen Ergebnissen.
- R hat keine Decorator-Syntax, daher sind Decorator-Beziehungen als nicht anwendbar markiert.

## Nächste Schritte

Verbinde ein Repository über den [Schnellstart](/de/docs/quickstart) und prüfe dann die Unterstützungsmatrix auf der [Kompatibilitätsseite](/de/docs/compatibility). Für gemischte Data-Science-Repositories lies auch den [Python-Leitfaden](/de/languages/python).

## Engine-Einordnung

- Die R-Unterstützung ordnet `.R`, `.Rmd` und `.Rnw` R zu. Funktionen, die einem Namen zugewiesen werden, werden unter diesem Namen extrahiert, und Namen mit Punkten wie `data.frame` bleiben ganz.
- S3- und S4-Dispatch (`UseMethod`, `standardGeneric`), die apply-Familie, `lm`, `predict` und `tryCatch` bleiben bewusst im Graphen.
- Etwa 800 Namen aus Basis-R, `stats` und `graphics`, etwa `print`, `paste` und `c`, werden aus den Beziehungen gefiltert.

## Nützliche MCP-Einstiegspunkte

- `find_symbol`: Nutz es für den Namen einer Bereinigungs-, Modellierungs- oder S3-Methode, wenn du Definition und Aufrufer brauchst.
- `dependency_search`: Nutz die eingehende Traversierung auf einer Hilfsfunktion, um vor einer Änderung ihrer Ausgabe zu sehen, welche Analysen von ihr abhängen.
- `get_task_context`: Nutz es für Prompts wie „verfolge den Weg vom Laden der Rohdaten bis zur finalen Regression“.
