# R di Maguyva: graf kode untuk analisis dan paket

Canonical source: https://maguyva.ai/id/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 mendukung R dengan AST, simbol, dan graf, sehingga agen AI dapat menelusuri fungsi, dispatch S3 dan S4, serta panggilan penyesuaian model di seluruh skrip dan paket R.

## Snapshot dukungan

- Tier: Dukungan AST dan simbol
- Pemrograman
- Ekstensi: .r, .rmd, .rnw
- Parsing AST sungguhan untuk pencarian sadar-syntax dan konteks struktural.
- Simbol bernama menggerakkan pencarian semantik dan cross-reference. Navigasi graf tersedia saat ekstraksi relasi diaktifkan.
- Bahasa ini menyumbangkan simbol dan relasi ke pencarian berbasis graf; jenis edge yang didukung bervariasi sesuai konstruk bawaan bahasa tersebut.
- Parsing AST dan ekstraksi simbol sama-sama tersedia.

## Paling cocok untuk

- Paket R dengan banyak fungsi yang diekspor, metode S3, dan pembantu internal.
- Pipeline analisis yang dipecah ke skrip-skrip yang berbagi fungsi pembersihan data dan pemodelan.
- Tim data yang menyerahkan kode R kepada agen AI yang perlu melihat fungsi mana memasok model mana.

## Workflow agent

- Menemukan semua pemanggil fungsi pembersihan data sebelum mengubah kolom yang dikembalikannya.
- Menelusuri fungsi mana yang melakukan dispatch dengan `UseMethod` dan di mana metodenya berada.
- Memetakan jalur dari pemuatan data mentah sampai model yang sudah disesuaikan.

## Di mana R menjebak alat AI yang dangkal

R menaruh fungsi dasar, fungsi paket, dan fungsi Anda dalam satu namespace datar. Titik adalah bagian dari nama, bukan akses anggota: `is.na`, `data.frame`, dan `print.summary_table` adalah pengenal tunggal. Alat yang membaca `print.summary_table` sebagai metode pada `print` salah memahami strukturnya, dan alat yang mencatat setiap panggilan dasar mengubur fungsi Anda di bawah `c()` dan `paste()`.

Maguyva menjaga nama R tetap utuh dan memfilter kebisingan fungsi dasar, sehingga agen melihat fungsi yang benar-benar menjadi sandaran analisis Anda.

## Apa yang diekstrak Maguyva dari R

Maguyva memetakan berkas `.R`, `.Rmd`, dan `.Rnw` ke R. Fungsi yang ditetapkan ke sebuah nama, seperti `clean_survey <- function(df)`, diekstrak dengan nama itu; fungsi anonim tidak dianggap sebagai definisi. Nama bertitik tidak pernah dipecah menjadi penerima dan anggota.

Beberapa panggilan R dasar sengaja dibiarkan di graf karena menunjukkan bagaimana kode analisis saling terhubung: dispatch S3 dan S4 (`UseMethod`, `standardGeneric`), keluarga apply (`lapply`, `sapply`, `vapply`, `mapply`), penyesuaian model (`lm`, `predict`, `anova`), pemuatan paket (`library`, `require`), dan penanganan kesalahan dengan `tryCatch`.

Graf juga mencatat instansiasi serta pembacaan dan penulisan.

## Contoh prompt agen

- "Siapa yang memanggil `clean_survey`, dan model mana yang memakai keluarannya?" (`find_symbol`, lalu `dependency_search` incoming)
- "Fungsi mana saja yang memanggil `fit_model`?" (`dependency_search`)
- "Telusuri jalur dari `load_raw_data` sampai regresi akhir." (`get_task_context`)

## Batasan yang diketahui

- Sekitar 800 nama dari R dasar, `stats`, dan `graphics` difilter dari relasi, seperti `print`, `paste`, `c`, `data.frame`, panggilan plotting, dan pembangkit bilangan acak. Gunakan `text_pattern_search` untuk itu.
- R membuat kelas dan memuat paket dengan panggilan fungsi biasa, sehingga preset `classes`, `imports`, dan `variables` di `structural_search` tidak memilih apa pun. Gunakan `find_symbol` dan `text_pattern_search`.
- Berkas `.Rmd` dan `.Rnw` dibaca utuh dengan tata bahasa R, bukan per potongan; harapkan hasil parsial pada dokumen R Markdown dan Sweave.
- R tidak memiliki sintaksis dekorator, sehingga relasi dekorator ditandai tidak berlaku.

## Langkah berikutnya

Hubungkan repositori dengan [panduan memulai cepat](/id/docs/quickstart), lalu periksa matriks dukungan di [halaman kompatibilitas](/id/docs/compatibility). Untuk repositori sains data campuran, baca juga [panduan Python](/id/languages/python).

## Detail engine

- Dukungan R memetakan berkas `.R`, `.Rmd`, dan `.Rnw` ke R. Fungsi yang ditetapkan ke sebuah nama diekstrak dengan nama itu, dan nama bertitik seperti `data.frame` tetap utuh.
- Dispatch S3 dan S4 (`UseMethod`, `standardGeneric`), keluarga apply, `lm`, `predict`, dan `tryCatch` sengaja dibiarkan di graf.
- Sekitar 800 nama dari R dasar, `stats`, dan `graphics`, seperti `print`, `paste`, dan `c`, difilter dari relasi.

## Titik masuk MCP yang berguna

- `find_symbol`: Gunakan untuk nama fungsi pembersihan, pemodelan, atau metode S3 saat Anda membutuhkan definisi dan pemanggilnya.
- `dependency_search`: Gunakan penelusuran incoming untuk melihat analisis mana yang bergantung pada fungsi pembantu sebelum mengubah keluarannya.
- `get_task_context`: Gunakan untuk prompt seperti "telusuri jalur dari pemuatan data mentah sampai regresi akhir".
