# R dalam Maguyva: graf kod untuk analisis dan pakej

Canonical source: https://maguyva.ai/ms/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 menyokong R dengan AST, simbol dan graf, supaya ejen AI boleh menjejak fungsi, dispatch S3 dan S4, serta panggilan pemadanan model merentas skrip dan pakej R.

## Gambaran sokongan

- Peringkat: Sokongan AST dan simbol
- Pengaturcaraan
- Sambungan fail: .r, .rmd, .rnw
- Penghuraian AST sebenar untuk carian sedar-sintaks dan konteks struktur.
- Simbol bernama menyokong carian semantik dan rujukan silang. Navigasi graf tersedia apabila pengekstrakan hubungan didayakan.
- Bahasa ini menyumbang simbol dan hubungan kepada carian berasaskan graf; jenis edge yang disokong berbeza mengikut binaan aslinya.
- Penghuraian AST dan pengekstrakan simbol kedua-duanya tersedia.

## Paling sesuai

- Pakej R dengan banyak fungsi yang dieksport, kaedah S3 dan pembantu dalaman.
- Pipeline analisis yang dipecahkan kepada skrip yang berkongsi fungsi pembersihan data dan pemodelan.
- Pasukan data yang menyerahkan kod R kepada ejen AI yang perlu melihat fungsi mana membekalkan model mana.

## Aliran kerja ejen

- Mencari semua pemanggil fungsi pembersihan data sebelum mengubah lajur yang dipulangkannya.
- Menjejak fungsi mana yang melakukan dispatch dengan `UseMethod` dan di mana kaedahnya berada.
- Memetakan laluan daripada pemuatan data mentah hingga ke model yang telah dipadankan.

## Di mana R memerangkap alat AI yang cetek

R meletakkan fungsi asas, fungsi pakej dan fungsi anda dalam satu ruang nama rata. Titik ialah sebahagian daripada nama, bukan akses ahli: `is.na`, `data.frame` dan `print.summary_table` ialah pengecam tunggal. Alat yang membaca `print.summary_table` sebagai kaedah pada `print` salah memahami strukturnya, dan alat yang merekodkan setiap panggilan asas menimbus fungsi anda di bawah `c()` dan `paste()`.

Maguyva mengekalkan nama R secara utuh dan menapis hingar fungsi asas, supaya ejen melihat fungsi yang benar-benar menjadi sandaran analisis anda.

## Apa yang diekstrak oleh Maguyva daripada R

Maguyva memetakan fail `.R`, `.Rmd` dan `.Rnw` kepada R. Fungsi yang diumpukkan kepada sesuatu nama, seperti `clean_survey <- function(df)`, diekstrak dengan nama itu; fungsi tanpa nama tidak dianggap sebagai takrifan. Nama bertitik tidak pernah dipecahkan kepada penerima dan ahli.

Sesetengah panggilan R asas sengaja dikekalkan dalam graf kerana ia menunjukkan bagaimana kod analisis dihubungkan: dispatch S3 dan S4 (`UseMethod`, `standardGeneric`), keluarga apply (`lapply`, `sapply`, `vapply`, `mapply`), pemadanan model (`lm`, `predict`, `anova`), pemuatan pakej (`library`, `require`) dan pengendalian ralat dengan `tryCatch`.

Graf juga merekodkan instansiasi serta bacaan dan tulisan.

## Contoh gesaan ejen

- "Siapa yang memanggil `clean_survey`, dan model mana yang menggunakan outputnya?" (`find_symbol`, kemudian `dependency_search` arah masuk)
- "Fungsi mana yang memanggil `fit_model`?" (`dependency_search`)
- "Jejaki laluan daripada `load_raw_data` hingga ke regresi akhir." (`get_task_context`)

## Had yang diketahui

- Kira-kira 800 nama daripada R asas, `stats` dan `graphics` ditapis daripada hubungan, seperti `print`, `paste`, `c`, `data.frame`, panggilan plot dan penjana nombor rawak. Gunakan `text_pattern_search` untuknya.
- R mencipta kelas dan memuatkan pakej dengan panggilan fungsi biasa, jadi pratetap `classes`, `imports` dan `variables` dalam `structural_search` tidak memilih apa-apa. Gunakan `find_symbol` dan `text_pattern_search`.
- Fail `.Rmd` dan `.Rnw` dibaca sepenuhnya dengan tatabahasa R, bukan mengikut ketulan; jangkakan keputusan separa bagi dokumen R Markdown dan Sweave.
- R tiada sintaks penghias, jadi hubungan penghias ditanda sebagai tidak berkenaan.

## Langkah seterusnya

Sambungkan repositori dengan [panduan permulaan pantas](/ms/docs/quickstart), kemudian semak matriks sokongan di [halaman keserasian](/ms/docs/compatibility). Untuk repositori sains data bercampur, baca juga [panduan Python](/ms/languages/python).

## Butiran enjin

- Sokongan R memetakan fail `.R`, `.Rmd` dan `.Rnw` kepada R. Fungsi yang diumpukkan kepada sesuatu nama diekstrak dengan nama itu, dan nama bertitik seperti `data.frame` kekal utuh.
- Dispatch S3 dan S4 (`UseMethod`, `standardGeneric`), keluarga apply, `lm`, `predict` dan `tryCatch` sengaja dikekalkan dalam graf.
- Kira-kira 800 nama daripada R asas, `stats` dan `graphics`, seperti `print`, `paste` dan `c`, ditapis daripada hubungan.

## Titik masuk MCP yang berguna

- `find_symbol`: Gunakan untuk nama fungsi pembersihan, pemodelan atau kaedah S3 apabila anda memerlukan takrifan dan pemanggilnya.
- `dependency_search`: Gunakan penelusuran arah masuk untuk melihat analisis mana yang bergantung pada fungsi pembantu sebelum mengubah outputnya.
- `get_task_context`: Gunakan untuk gesaan seperti "jejaki laluan daripada pemuatan data mentah hingga ke regresi akhir".
