Przejdź do treści
cd /languages
  • Obliczenia statystyczne
  • Programowanie
  • Obsługa AST i symboli

R w Maguyva: grafy kodu dla analiz i pakietów

Maguyva obsługuje R przez AST, symbole i graf, dzięki czemu agenci AI śledzą funkcje, dyspozycję S3 i S4 oraz wywołania dopasowania modeli w skryptach i pakietach R.

Gdzie R sprawia kłopot powierzchownym narzędziom AI

R umieszcza funkcje bazowe, funkcje pakietów i twoje własne w jednej płaskiej przestrzeni nazw. Kropki są częścią nazw, a nie dostępem do składowej: is.na, data.frame i print.summary_table to pojedyncze identyfikatory. Narzędzie, które czyta print.summary_table jako metodę na print, źle odczytuje strukturę, a takie, które zapisuje każde wywołanie bazowe, zakopuje twoje funkcje pod c() i paste().

Maguyva zachowuje nazwy R w całości i odfiltrowuje szum funkcji bazowych, więc agent widzi funkcje, od których twoja analiza naprawdę zależy.

Co Maguyva wyodrębnia w R

Maguyva przypisuje pliki .R, .Rmd i .Rnw do R. Funkcje przypisane do nazwy, takie jak clean_survey <- function(df), są wyodrębniane pod tą nazwą, a funkcje anonimowe nie są traktowane jako definicje. Nazwy z kropkami nigdy nie są dzielone na odbiorcę i składową.

Niektóre wywołania bazowego R celowo zostają w grafie, bo pokazują, jak połączony jest kod analityczny: dyspozycja S3 i S4 (UseMethod, standardGeneric), rodzina apply (lapply, sapply, vapply, mapply), dopasowanie modeli (lm, predict, anova), ładowanie pakietów (library, require) oraz obsługa błędów za pomocą tryCatch.

Graf zapisuje też tworzenie instancji oraz odczyty i zapisy.

Przykładowe prompty dla agentów

  • „Kto wywołuje clean_survey i które modele używają jej wyniku?” (find_symbol, potem dependency_search incoming)
  • „Które funkcje wywołują fit_model?” (dependency_search)
  • „Prześledź ścieżkę od load_raw_data do końcowej regresji.” (get_task_context)

Znane ograniczenia

  • Około 800 nazw z bazowego R, stats i graphics jest odfiltrowywanych z relacji, na przykład print, paste, c, data.frame, wywołania wykresów i generatory liczb losowych. Do ich wyszukania użyj text_pattern_search.
  • R tworzy klasy i ładuje pakiety zwykłymi wywołaniami funkcji, więc presety classes, imports i variables w structural_search niczego nie wybierają. Użyj find_symbol i text_pattern_search.
  • Pliki .Rmd i .Rnw są czytane w całości gramatyką R, a nie fragment po fragmencie, więc w dokumentach R Markdown i Sweave licz się z niepełnymi wynikami.
  • R nie ma składni dekoratorów, więc relacje dekoratorów są oznaczone jako nie mające zastosowania.

Kolejne kroki

Podłącz repozytorium za pomocą szybkiego startu, a potem sprawdź macierz obsługi na stronie zgodności. W przypadku mieszanych repozytoriów data science przeczytaj też przewodnik po języku Python.

Najlepsze dopasowanie

  • > Pakiety R z wieloma eksportowanymi funkcjami, metodami S3 i wewnętrznymi funkcjami pomocniczymi.
  • > Potoki analityczne rozłożone na skrypty, które współdzielą funkcje czyszczenia danych i modelowania.
  • > Zespoły danych, które przekazują kod R agentom AI potrzebującym widzieć, które funkcje zasilają które modele.

Workflow agentów

  • > Znaleźć wszystkie miejsca wywołujące funkcję czyszczącą dane przed zmianą zwracanych przez nią kolumn.
  • > Prześledzić, które funkcje rozsyłają wywołania przez `UseMethod` i gdzie znajdują się ich metody.
  • > Zmapować ścieżkę od wczytania surowych danych do dopasowanego modelu.

Szczegóły silnika

  • > Obsługa R przypisuje `.R`, `.Rmd` i `.Rnw` do R. Funkcje przypisane do nazwy są wyodrębniane pod tą nazwą, a nazwy z kropkami, takie jak `data.frame`, pozostają w całości.
  • > Dyspozycja S3 i S4 (`UseMethod`, `standardGeneric`), rodzina apply, `lm`, `predict` i `tryCatch` celowo zostają w grafie.
  • > Około 800 nazw z bazowego R, `stats` i `graphics`, takich jak `print`, `paste` i `c`, jest odfiltrowywanych z relacji.

Przydatne punkty wejścia MCP

  • find_symbol

    Użyj go dla nazwy funkcji czyszczącej, modelującej lub metody S3, gdy potrzebujesz definicji i wywołujących.

  • dependency_search

    Użyj przejścia incoming na funkcji pomocniczej, aby przed zmianą jej wyniku zobaczyć, które analizy od niej zależą.

  • get_task_context

    Użyj go do promptów takich jak „Prześledź ścieżkę od wczytania surowych danych do końcowej regresji”.