Zum Inhalt springen
cd /languages
  • Statistisches Rechnen
  • Programmierung
  • AST- und Symbol-Support

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

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.

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 und prüfe dann die Unterstützungsmatrix auf der Kompatibilitätsseite. Für gemischte Data-Science-Repositories lies auch den Python-Leitfaden.

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.

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