Saltar al contenido
cd /languages
  • Computación estadística
  • Programación
  • Soporte de AST y símbolos

R en Maguyva: grafos de código para análisis y paquetes

Maguyva admite R con AST, símbolos y grafo, para que los agentes de IA sigan funciones, despacho S3 y S4 y llamadas de ajuste de modelos en scripts y paquetes de R.

Dónde R hace tropezar a las herramientas de IA superficiales

R pone las funciones base, las de los paquetes y las tuyas en un único espacio de nombres plano. Los puntos forman parte de los nombres, no son acceso a miembros: is.na, data.frame y print.summary_table son identificadores únicos. Una herramienta que lee print.summary_table como un método sobre print entiende mal la estructura, y una que registra cada llamada base entierra tus funciones bajo c() y paste().

Maguyva mantiene enteros los nombres de R y filtra el ruido de las funciones base, para que un agente vea las funciones de las que tu análisis depende de verdad.

Qué extrae Maguyva en R

Maguyva asigna los archivos .R, .Rmd y .Rnw a R. Las funciones asignadas a un nombre, como clean_survey <- function(df), se extraen con ese nombre, y las funciones anónimas no se tratan como definiciones. Los nombres con puntos nunca se dividen en receptor y miembro.

Algunas llamadas de R base se quedan en el grafo a propósito porque muestran cómo está cableado el código de análisis: el despacho S3 y S4 (UseMethod, standardGeneric), la familia apply (lapply, sapply, vapply, mapply), el ajuste de modelos (lm, predict, anova), la carga de paquetes (library, require) y el manejo de errores con tryCatch.

El grafo también registra instanciación y lecturas y escrituras.

Ejemplos de prompts para agentes

  • “¿Quién llama a clean_survey y qué modelos usan su salida?” (find_symbol, luego dependency_search incoming)
  • “¿Qué funciones llaman a fit_model?” (dependency_search)
  • “Rastrea el camino desde load_raw_data hasta la regresión final.” (get_task_context)

Limitaciones conocidas

  • Unos 800 nombres de R base, stats y graphics se filtran de las relaciones, como print, paste, c, data.frame, las llamadas de gráficos y los generadores de números aleatorios. Usa text_pattern_search para encontrarlos.
  • R crea clases y carga paquetes con llamadas a funciones normales, así que los presets classes, imports y variables de structural_search no seleccionan nada. Usa find_symbol y text_pattern_search.
  • Los archivos .Rmd y .Rnw se leen completos con la gramática de R en lugar de chunk por chunk, así que espera resultados parciales en documentos R Markdown y Sweave.
  • R no tiene sintaxis de decoradores, así que las relaciones de decoradores están marcadas como no aplicables.

Próximos pasos

Conecta un repositorio con el inicio rápido y luego revisa la matriz de compatibilidad en la página de compatibilidad. Para repositorios mixtos de ciencia de datos, lee también la guía de Python.

Mejor uso

  • > Paquetes de R con muchas funciones exportadas, métodos S3 y helpers internos.
  • > Pipelines de análisis repartidos en scripts que comparten funciones de limpieza de datos y de modelado.
  • > Equipos de datos que entregan código R a agentes de IA que necesitan ver qué funciones alimentan qué modelos.

Flujos de trabajo del agente

  • > Encontrar todos los llamadores de una función de limpieza de datos antes de cambiar las columnas que devuelve.
  • > Rastrear qué funciones despachan con `UseMethod` y dónde viven sus métodos.
  • > Mapear el camino desde la carga de datos en bruto hasta un modelo ajustado.

Detalles del motor

  • > El soporte de R asigna `.R`, `.Rmd` y `.Rnw` a R. Las funciones asignadas a un nombre se extraen con ese nombre, y los nombres con puntos como `data.frame` se mantienen enteros.
  • > El despacho S3 y S4 (`UseMethod`, `standardGeneric`), la familia apply, `lm`, `predict` y `tryCatch` se quedan en el grafo a propósito.
  • > Unos 800 nombres de R base, `stats` y `graphics`, como `print`, `paste` y `c`, se filtran de las relaciones.

Puntos de entrada MCP útiles

  • find_symbol

    Úsalo para el nombre de una función de limpieza, de modelado o de un método S3 cuando necesites la definición y los llamadores.

  • dependency_search

    Usa el recorrido incoming sobre una función auxiliar para ver qué análisis dependen de ella antes de cambiar su salida.

  • get_task_context

    Úsalo para prompts como "rastrea el camino desde la carga de datos en bruto hasta la regresión final".