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

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

## Migawka wsparcia

- Poziom: Obsługa AST i symboli
- Programowanie
- Rozszerzenia: .r, .rmd, .rnw
- Prawdziwe parsowanie AST dla wyszukiwania świadomego składni i kontekstu strukturalnego.
- Nazwane symbole zasilają wyszukiwanie semantyczne i wzajemne odwołania. Nawigacja po grafie jest dostępna po włączeniu ekstrakcji relacji.
- Ten język dostarcza symbole i relacje do wyszukiwania uwzględniającego graf; obsługiwane typy krawędzi zależą od jego rodzimych konstrukcji.
- Dostępne są zarówno parsowanie AST, jak i ekstrakcja symboli.

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

## 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](/pl/docs/quickstart), a potem sprawdź macierz obsługi na [stronie zgodności](/pl/docs/compatibility). W przypadku mieszanych repozytoriów data science przeczytaj też [przewodnik po języku Python](/pl/languages/python).

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