# R no Maguyva: grafos de código para análise e pacotes

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

O Maguyva oferece suporte a R com AST, símbolos e grafo, para que agentes de IA sigam funções, dispatch S3 e S4 e chamadas de ajuste de modelos em scripts e pacotes R.

## Panorama de suporte

- Nível: Suporte a AST e símbolos
- Programação
- Extensões: .r, .rmd, .rnw
- Parsing real de AST para busca com consciência de sintaxe e contexto estrutural.
- Símbolos nomeados alimentam a busca semântica e as referências cruzadas. A navegação por grafo fica disponível quando a extração de relações está habilitada.
- Esta linguagem fornece símbolos e relações para a busca orientada por grafo; os tipos de aresta compatíveis variam de acordo com seus construtos nativos.
- A análise de AST e a extração de símbolos estão disponíveis.

## Uso ideal

- Pacotes R com muitas funções exportadas, métodos S3 e helpers internos.
- Pipelines de análise divididos em scripts que compartilham funções de limpeza de dados e de modelagem.
- Times de dados que entregam código R a agentes de IA que precisam ver quais funções alimentam quais modelos.

## Fluxos de trabalho de agente

- Encontrar todos os chamadores de uma função de limpeza de dados antes de mudar as colunas que ela retorna.
- Rastrear quais funções fazem dispatch com `UseMethod` e onde ficam seus métodos.
- Mapear o caminho do carregamento dos dados brutos até um modelo ajustado.

## Onde R derruba ferramentas de IA superficiais

R coloca as funções base, as dos pacotes e as suas em um único namespace plano. Pontos fazem parte dos nomes, não são acesso a membros: `is.na`, `data.frame` e `print.summary_table` são identificadores únicos. Uma ferramenta que lê `print.summary_table` como um método em `print` entende a estrutura errado, e uma que registra cada chamada base enterra suas funções embaixo de `c()` e `paste()`.

O Maguyva mantém os nomes do R inteiros e filtra o ruído das funções base, para que um agente veja as funções das quais sua análise realmente depende.

## O que o Maguyva extrai em R

O Maguyva associa arquivos `.R`, `.Rmd` e `.Rnw` a R. Funções atribuídas a um nome, como `clean_survey <- function(df)`, são extraídas com esse nome, e funções anônimas não são tratadas como definições. Nomes com pontos nunca são divididos em receiver e membro.

Algumas chamadas do R base ficam no grafo de propósito, porque mostram como o código de análise está ligado: dispatch S3 e S4 (`UseMethod`, `standardGeneric`), a família apply (`lapply`, `sapply`, `vapply`, `mapply`), ajuste de modelos (`lm`, `predict`, `anova`), carregamento de pacotes (`library`, `require`) e tratamento de erros com `tryCatch`.

O grafo também registra instanciação e leituras e escritas.

## Exemplos de prompts para agentes

- "Quem chama `clean_survey`, e quais modelos usam a saída dela?" (`find_symbol`, depois `dependency_search` incoming)
- "Quais funções chamam `fit_model`?" (`dependency_search`)
- "Rastreie o caminho de `load_raw_data` até a regressão final." (`get_task_context`)

## Limitações conhecidas

- Cerca de 800 nomes do R base, de `stats` e de `graphics` são filtrados das relações, como `print`, `paste`, `c`, `data.frame`, chamadas de gráficos e geradores de números aleatórios. Use `text_pattern_search` para encontrá-los.
- O R cria classes e carrega pacotes com chamadas de função comuns, então os presets `classes`, `imports` e `variables` do `structural_search` não selecionam nada. Use `find_symbol` e `text_pattern_search`.
- Arquivos `.Rmd` e `.Rnw` são lidos inteiros com a gramática do R, e não chunk por chunk, então espere resultados parciais em documentos R Markdown e Sweave.
- R não tem sintaxe de decorator, então as relações de decorator estão marcadas como não aplicáveis.

## Próximos passos

Conecte um repositório pelo [início rápido](/pt-br/docs/quickstart) e depois confira a matriz de suporte na [página de compatibilidade](/pt-br/docs/compatibility). Para repositórios mistos de ciência de dados, leia também o [guia de Python](/pt-br/languages/python).

## Detalhes do motor

- O suporte a R associa `.R`, `.Rmd` e `.Rnw` a R. Funções atribuídas a um nome são extraídas com esse nome, e nomes com pontos como `data.frame` ficam inteiros.
- Dispatch S3 e S4 (`UseMethod`, `standardGeneric`), a família apply, `lm`, `predict` e `tryCatch` ficam no grafo de propósito.
- Cerca de 800 nomes do R base, de `stats` e de `graphics`, como `print`, `paste` e `c`, são filtrados das relações.

## Pontos de entrada MCP úteis

- `find_symbol`: Use para o nome de uma função de limpeza, de modelagem ou de um método S3 quando precisar da definição e dos chamadores.
- `dependency_search`: Use a travessia incoming em uma função auxiliar para ver quais análises dependem dela antes de mudar sua saída.
- `get_task_context`: Use para prompts como "rastreie o caminho do carregamento dos dados brutos até a regressão final".
