# R in Maguyva: grafi del codice per analisi e pacchetti

Canonical source: https://maguyva.ai/it/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 supporta R con AST, simboli e grafo, così gli agenti IA seguono funzioni, dispatch S3 e S4 e chiamate di stima dei modelli in script e pacchetti R.

## Istantanea del supporto

- Livello: Supporto AST e simboli
- Programmazione
- Estensioni: .r, .rmd, .rnw
- Analisi AST reale per ricerca sintattica e contesto strutturale.
- I simboli nominati alimentano la ricerca semantica e i riferimenti incrociati. La navigazione del grafo è disponibile quando è abilitata l’estrazione delle relazioni.
- Questo linguaggio contribuisce con simboli e relazioni alla ricerca basata sul grafo; i tipi di arco supportati variano in base ai suoi costrutti nativi.
- Sono disponibili sia l’analisi AST sia l’estrazione dei simboli.

## Il più adatto per

- Pacchetti R con molte funzioni esportate, metodi S3 e helper interni.
- Pipeline di analisi suddivise in script che condividono funzioni di pulizia dei dati e di modellazione.
- Team di dati che affidano codice R ad agenti IA che devono vedere quali funzioni alimentano quali modelli.

## Workflow degli agenti

- Trovare tutti i chiamanti di una funzione di pulizia dei dati prima di cambiare le colonne che restituisce.
- Tracciare quali funzioni fanno dispatch tramite `UseMethod` e dove si trovano i loro metodi.
- Mappare il percorso dal caricamento dei dati grezzi a un modello stimato.

## Dove R fa inciampare gli strumenti di IA superficiali

R mette le funzioni base, quelle dei pacchetti e le tue in un unico namespace piatto. I punti fanno parte dei nomi, non sono accessi a membri: `is.na`, `data.frame` e `print.summary_table` sono identificatori unici. Uno strumento che legge `print.summary_table` come un metodo su `print` sbaglia la struttura, e uno che registra ogni chiamata base seppellisce le tue funzioni sotto `c()` e `paste()`.

Maguyva mantiene interi i nomi di R e filtra il rumore delle funzioni base, così un agente vede le funzioni da cui la tua analisi dipende davvero.

## Cosa estrae Maguyva in R

Maguyva associa i file `.R`, `.Rmd` e `.Rnw` a R. Le funzioni assegnate a un nome, come `clean_survey <- function(df)`, vengono estratte con quel nome, e le funzioni anonime non sono trattate come definizioni. I nomi con i punti non vengono mai divisi in receiver e membro.

Alcune chiamate di R base restano nel grafo di proposito, perché mostrano come è collegato il codice di analisi: dispatch S3 e S4 (`UseMethod`, `standardGeneric`), la famiglia apply (`lapply`, `sapply`, `vapply`, `mapply`), la stima dei modelli (`lm`, `predict`, `anova`), il caricamento dei pacchetti (`library`, `require`) e la gestione degli errori con `tryCatch`.

Il grafo registra anche istanziazione e letture e scritture.

## Esempi di prompt per agenti

- "Chi chiama `clean_survey`, e quali modelli usano il suo output?" (`find_symbol`, poi `dependency_search` incoming)
- "Quali funzioni chiamano `fit_model`?" (`dependency_search`)
- "Traccia il percorso da `load_raw_data` alla regressione finale." (`get_task_context`)

## Limiti noti

- Circa 800 nomi di R base, di `stats` e di `graphics` vengono filtrati dalle relazioni, come `print`, `paste`, `c`, `data.frame`, le chiamate di grafica e i generatori di numeri casuali. Usa `text_pattern_search` per trovarli.
- R crea classi e carica pacchetti con normali chiamate di funzione, quindi i preset `classes`, `imports` e `variables` di `structural_search` non selezionano nulla. Usa `find_symbol` e `text_pattern_search`.
- I file `.Rmd` e `.Rnw` vengono letti per intero con la grammatica di R invece che chunk per chunk, quindi aspettati risultati parziali per i documenti R Markdown e Sweave.
- R non ha una sintassi per i decorator, quindi le relazioni di decorator sono marcate come non applicabili.

## Prossimi passi

Collega un repository con la [guida rapida](/it/docs/quickstart), poi consulta la matrice di supporto nella [pagina di compatibilità](/it/docs/compatibility). Per repository misti di data science, leggi anche la [guida a Python](/it/languages/python).

## Dettagli del motore

- Il supporto a R associa `.R`, `.Rmd` e `.Rnw` a R. Le funzioni assegnate a un nome vengono estratte con quel nome, e i nomi con i punti come `data.frame` restano interi.
- Il dispatch S3 e S4 (`UseMethod`, `standardGeneric`), la famiglia apply, `lm`, `predict` e `tryCatch` restano nel grafo di proposito.
- Circa 800 nomi di R base, di `stats` e di `graphics`, come `print`, `paste` e `c`, vengono filtrati dalle relazioni.

## Punti di ingresso MCP utili

- `find_symbol`: Usalo per il nome di una funzione di pulizia, di modellazione o di un metodo S3 quando ti servono definizione e chiamanti.
- `dependency_search`: Usa l'attraversamento incoming su una funzione di supporto per vedere quali analisi ne dipendono prima di cambiarne l'output.
- `get_task_context`: Usalo per prompt come "traccia il percorso dal caricamento dei dati grezzi alla regressione finale".
