Vai al contenuto
cd /languages
  • Calcolo statistico
  • Programmazione
  • Supporto AST e simboli

R in Maguyva: grafi del codice per analisi e pacchetti

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.

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, poi consulta la matrice di supporto nella pagina di compatibilità. Per repository misti di data science, leggi anche la guida a Python.

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.

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