| Title: | Visual Data Analysis 'RStudio' 'Addin' with AI Copilot |
|---|---|
| Description: | An 'RStudio' 'addin' providing a visual, point-and-click interface for data manipulation and analysis, designed for users transitioning from 'SPSS' to R. Every visual action generates clean, reproducible R code using 'tidyverse' conventions ('dplyr', 'tidyr'). Includes a context-aware AI copilot supporting multiple 'LLM' providers ('OpenAI', 'Anthropic' Claude, 'Google Gemini') with built-in proxy support and privacy controls. |
| Authors: | Fernando Cañete [aut, cre] |
| Maintainer: | Fernando Cañete <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.0 |
| Built: | 2026-06-02 19:06:29 UTC |
| Source: | https://github.com/facszero/rvisual |
Usa curl directamente para mayor compatibilidad con proxies corporativos.
ai_send(cfg, system_prompt, user_prompt)ai_send(cfg, system_prompt, user_prompt)
cfg |
Lista de configuración del proveedor IA: |
system_prompt |
String con el prompt de sistema (contexto del dataset activo). |
user_prompt |
String con el mensaje del usuario. |
Aplicar una lista de operaciones a un data.frame
apply_operations(df, ops)apply_operations(df, ops)
df |
Data.frame base |
ops |
Lista de operaciones (output de op_* functions) |
Data.frame transformado
Clasificar tipo visual de una columna (para mostrar al usuario)
classify_visual_type(col)classify_visual_type(col)
col |
Vector de una columna del data.frame a clasificar. |
Cargar configuración guardada
config_load()config_load()
Lista de configuración o lista vacía
Guarda/lee configuración en un archivo JSON local usando el directorio de datos del usuario (rappdirs-style).
config_path()config_path()
Guardar configuración
config_save(cfg)config_save(cfg)
cfg |
Lista de configuración |
Descubrimiento de datasets, metadatos y carga de archivos Listar data.frames disponibles en el entorno global
discover_datasets()discover_datasets()
Lista de listas con name, nrow, ncol por cada dataset
Convierte un stack de operaciones (lista de objetos op_*) en código R limpio, legible y reproducible usando tidyverse (dplyr/tidyr).
generate_code(df_name, ops, assign_to = NULL)generate_code(df_name, ops, assign_to = NULL)
df_name |
Nombre del objeto R que contiene el dataset |
ops |
Lista de operaciones (output de op_* functions) |
assign_to |
Si no es NULL, el resultado se asigna a este nombre |
Estrategia de generación:
Una operación por línea del pipe
Pipe nativo (|>) con R >= 4.1
Convenciones tidyverse: snake_case, nombres explícitos
Comentarios explicativos cuando la operación es compleja
Código legible para usuarios en transición desde SPSS Generar código R desde nombre de dataset y stack de operaciones
String con código R formateado
Extraer metadatos estructurados de un data.frame
get_metadata(df, name = "dataset")get_metadata(df, name = "dataset")
df |
Data.frame |
name |
Nombre del objeto (para display) |
Lista con nrow, ncol, columns (data.frame con info de cada columna)
Registrar evento en el historial de sesión
history_log(history, type, detail = list())history_log(history, type, detail = list())
history |
reactiveVal que contiene la lista de eventos |
type |
String identificador del tipo de evento |
detail |
Lista con detalles del evento |
Punto de entrada del addin de RStudio.
launch_rvisual(browser = FALSE)launch_rvisual(browser = FALSE)
browser |
Lógico. Si |
Cargar un archivo de datos según su extensión
load_file(path, extension)load_file(path, extension)
path |
Ruta al archivo |
extension |
Extensión sin punto: "csv", "xlsx", "rds", "sav" |
Data.frame o tibble
Panel de chat con agente IA multi-proveedor. El agente conoce:
El nombre y esquema del dataset activo
Los tipos de columnas
El stack de operaciones actual
Opcionalmente, una muestra limitada de datos
mod_ai_ui(id)mod_ai_ui(id)
id |
ID del módulo Shiny (string). Usado internamente por |
Modalidad segura: el agente propone código y el usuario decide si ejecutarlo.
Módulo: Constructor Visual de Operaciones
mod_builder_ui(id)mod_builder_ui(id)
id |
ID del módulo Shiny (string). Usado internamente por |
Muestra en tiempo real el código R producido por el constructor visual. Permite:
Copiar al portapapeles
Insertar en el script activo de RStudio
Ejecutar directamente
Guardar como archivo .R
mod_code_ui(id)mod_code_ui(id)
id |
ID del módulo Shiny (string). Usado internamente por |
Pantalla de configuración del addin. Permite gestionar proveedores IA, API keys, modelos y preferencias.
mod_config_ui(id)mod_config_ui(id)
id |
ID del módulo Shiny (string). Usado internamente por |
Vista tabular interactiva del dataset activo. Incluye:
Tabla paginada con DT
Resumen de columnas con tipos detectados
Estadísticas rápidas por variable
Búsqueda de variables
mod_explorer_ui(id)mod_explorer_ui(id)
id |
ID del módulo Shiny (string). Usado por |
Renderizar historial como UI inline (para modal)
mod_history_ui_inline(history_list)mod_history_ui_inline(history_list)
history_list |
Lista de eventos del historial de sesión, generada por |
Crear operación: arrange
op_arrange(col, desc = FALSE)op_arrange(col, desc = FALSE)
col |
Nombre de columna |
desc |
Lógico: TRUE = descendente |
Crear operación: filter
op_filter(col, op, value)op_filter(col, op, value)
col |
Nombre de columna |
op |
Operador: "==", "!=", ">", "<", ">=", "<=" |
value |
Valor de comparación |
Crear operación: group_summarise
op_group_summarise(group_cols, summary_fns)op_group_summarise(group_cols, summary_fns)
group_cols |
Character vector de columnas de agrupación |
summary_fns |
Lista nombrada: nombre_nueva_col = list(fn, col_origen) |
Crear operación: join
op_join(right_df_name, by_cols, join_type = "left")op_join(right_df_name, by_cols, join_type = "left")
right_df_name |
Nombre del segundo dataset |
by_cols |
Vector de columnas clave (mismas en ambos) |
join_type |
"left", "right", "inner", "full" |
Crear operación: mutate (nueva variable)
op_mutate(new_col, expression)op_mutate(new_col, expression)
new_col |
Nombre de la nueva columna |
expression |
Expresión como string (será validada antes de generar código) |
Crear operación: recode
op_recode(col, mapping)op_recode(col, mapping)
col |
Columna a recodificar |
mapping |
Lista nombrada: valor_original = valor_nuevo |
Crear operación: rename
op_rename(old_name, new_name)op_rename(old_name, new_name)
old_name |
Nombre actual de la columna |
new_name |
Nuevo nombre |
Define la representación estructurada intermedia de las operaciones que el usuario construye visualmente.
op_select(cols)op_select(cols)
cols |
Character vector de nombres de columnas a seleccionar |
En lugar de concatenar texto, cada operación es un objeto R con campos tipados que permiten:
Generar código R limpio y reproducible
Reconstruir la UI desde el estado
Soportar historial y deshacer
Exportar/importar flujos de trabajo
Estructura de una operación (lista R):
Tipo de operación: select, filter, arrange, group_summarise, mutate, rename, recode, join
Descripción legible para mostrar en UI
Lista nombrada con parámetros específicos del tipo
Timestamp de creación
Crear operación: select
Obtener el path del script activo en RStudio
rstudio_active_script_path()rstudio_active_script_path()
Funciones para interactuar con RStudio desde el addin: insertar código, leer entorno, navegar entre archivos. Insertar código en el script activo de RStudio
rstudio_insert_code(code)rstudio_insert_code(code)
code |
String con el código R a insertar |
Ejecutar código en la consola de RStudio
rstudio_run_in_console(code)rstudio_run_in_console(code)
code |
String con el código R a ejecutar en la consola de RStudio. |
Orquesta todos los módulos Shiny.
El estado compartido entre módulos se gestiona a través de reactives
pasados como argumentos — no mediante variables globales.
rvisual_server(input, output, session)rvisual_server(input, output, session)
input, output, session
|
Parámetros estándar de Shiny server |
Define la interfaz Shiny completa del addin. Estructura en 6 paneles navegables via sidebar.
rvisual_ui()rvisual_ui()
Un objeto shiny.tag con la UI completa