# Guía para programar en R con inteligencia artificial

_Compilación de herramientas y alternativas para potenciar el análisis de datos y la programación usando IA_

> Existen muchas formas de usar IA para programar en R, desde el simple autocompletado hasta asistentes que pueden leer, ejecutar y modificar código directamente en tu entorno de trabajo. En esta publicación veremos las principales herramientas de IA disponibles para potenciar el análisis de datos en R, junto con consejos para sacarles provecho basados en mi experiencia.

- URL: https://bastianolea.rbind.io/blog/ia_r/
- Fecha: 2026-10-13
- Autor: Bastián Olea Herrera
- Etiquetas: inteligencia artificial, consejos
- Recursos: [Posit Assistant](https://assistant.posit.co)

---

<!---
> **Nota:** A lo largo de este post usaremos el concepto 'IA' para referirnos a los _grandes modelos de lenguaje_ (LLM) o _inteligencia artificial generativa_, que son la forma más común de uso de IA hoy: ChatGPT, Claude, Gemini...

--->

Existen muchas formas de usar IA para programar en R, desde el simple [autocompletado](#herramientas-de-autocompletado) hasta [asistentes](#integración-directa-con-r-posit-assistant) que pueden leer, ejecutar y modificar código directamente en tu entorno de trabajo. 

En esta publicación veremos las principales herramientas de IA disponibles para potenciar el análisis de datos en R, junto con consejos para sacarles provecho basados en mi experiencia.

----

Por cada herramienta y consejo que veremos, agregaré unas **etiquetas** que te indican dónde se usan y su alcance:

| <div style="width:140px">Leyenda</div> | Explicación |
|----------------------------------------|-------------|
| 

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-message fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Chatbot</span>
</span>
          | Funciona dentro de los chatbots web de IA comunes: las versiones web de ChatGPT, Claude, DeepSeek, etc. |
| 

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Código</span>
</span>
      | Funciona para asistirte a la escritura de código en general, escribiendo o completando lo que le pidas |
| 

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-file fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Archivos</span>
</span>
          | La herramienta puede acceder a tus archivos locales, ya sea para leerlos o escribirlos (modificarlos), usualmente pidiendo permiso antes (ten cuidado!) |
| 

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-laptop-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Arnés de IA</span>
</span>
 | Funciona dentro de un software o _harness_ que coordina a la IA, como Claude Code, Codex, Open Code, etc. |
| 

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-repeat fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Loop</span>
</span>
            | La herramienta revisará posibilidades, repetirá sus intentos, y hará cambios y pruebas hasta lograr su objetivo |
| 

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-cube fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Proyectos</span>
</span>
 | Funciona dentro de un proyecto de RStudio o Positron, y puede leer o modificar a todos los scripts/archivos dentro del mismo |
| 

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fab fa-r-project fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Entorno de R</span>
</span>
 | La IA puede acceder a tu sesión de R y ejecutar código en ella; es decir, sabe lo que tienes cargado, tus datos, funciones, etc. |
| 

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-key fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Llave de API</span>
</span>
 | Requiere de una [llave de API](https://bastianolea.rbind.io/blog/ellmer/#proveedores-de-modelos-de-lenguaje-en-la-nube) para funcionar por medio de un pago por uso de IA, que debes configurar con `usethis::edit_r_environ()` |
| 

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-ticket fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Posit AI Pass</span>
</span>
 | Puede requerir de una suscripción a [Posit AI Pass](https://posit.ai) para funcionar, un servicio para proveer a RStudio y Positron de múltiples proveedores de IA |
| 

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-microchip fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">IA local</span>
</span>
 | Puede funcionar con [inteligencia artificial local](https://bastianolea.rbind.io/blog/ellmer/#modelos-de-lenguaje-locales) (que se ejecuta directamente en tu computador, sin depender de proveedores externos ni de internet) |

Vamos a ir de lo más simple/básico a lo más completo.

## Ideas generales al usar IA

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-message fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Chatbot</span>
</span>

<i class='fas fa-robot icono-lateral'></i>

La IA está diseñada para responder con algo estadísticamente similar a lo _correcto_. En este sentido, te recomiendo:

- Escribir _prompts_ extensos que expliquen **qué quieres obtener**, cómo lo estás haciendo, y qué herramientas estás usando
- Entregarle **la mayor cantidad de contexto posible**: documentos, ejemplos, enlaces a información relacionada, como veremos adelante
- **Revisar** los resultados que entrega la IA, por más convincentes que parezcan, y no dudar en cuestionar sus sugerencias
- **Guiar** el trabajo de la IA para que resuelva los problemas de manera directa, mencionando lenguajes (como R o Python), herramientas (paquetes del Tidyverse), _frameworks_ (como Shiny para hacer apps o Quarto para reportes o diapositivas)
- [**Planificar** el trabajo que hará la IA](#modo-planificación) para que sea certero en tus medios y objetivos

> **Nota:** **Prompt:** son los mensajes que hacemos llegar a la IA para obtener respuestas. Mientras más completo el mensaje, mejor será la respuesta.

La calidad de lo que obtienes de la IA depende directamente de la calidad de lo que le entregas; es decir, la **calidad del contexto** con que la IA cuenta para responderte. Por eso recomiendo entregarle textos de apoyo, enlaces web, transcripciones de reuniones o conversaciones, documentos y todo tipo de material para generar mejores respuestas!

> **Nota:** **Contexto:** se le llama así a todo el contenido de texto que usa la IA para poder entregar sus respuestas; mientras más contexto relevante reciba, más fundamentadas serán sus respuestas.

## Contexto con _agents.md_

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-laptop-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Arnés de IA</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-cube fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Proyectos</span>
</span>

Para guiar de manera general a la IA dentro de un proyecto de análisis de datos se recomienda crear un archivo `agents.md`.

El `agents.md` es un  [archivo Markdown](https://bastianolea.rbind.io/blog/quarto_reportes/#markdown) donde van todas las indicaciones generales que necesitas que tu IA conozca. 

Por ejemplo:

| Indicación | Ejemplo |
|------------|---------|
| Una **descripción** del proyecto y su nombre | — |
| Los **objetivos** del proyecto | _Esta es una [app Shiny](https://bastianolea.rbind.io/blog/shiny/) para explorar datos en un mapa interactivo, orientado a especialistas en análisis territorial de la región de la Araucanía, Chile_ |
| Su **estructura** de archivos, scripts o archivos clave | _El script principal es `procesar.R`, los datos se guardan en la carpeta `resultados`_ |
| **Consejos** para guiar a la IA | _Usa solamente Tidyverse, privilegia código simple y legible, agrega comentarios breves antes de cada bloque_ |
| El **flujo de trabajo** a seguir | _Crea una carpeta por fuente de datos en `datos`, con un script de limpieza por cada una, y guarda los datos limpios en `resultados/datos/`_ |
| **Ejemplos** de cómo actuar | _[Valida los datos](https://bastianolea.rbind.io/blog/2026-08-21/) en cada paso con `{pointblank}` así..._ |
| **Documentos** de referencia o contexto adicional | _Transcripción de una reunión, diapositivas de una presentación, un tutorial anterior sobre un tema similar_ |

Este documento va a ser leído por tu agente _antes de cada respuesta_, por lo que debe contener cosas que la IA **necesite saber** sobre su trabajo. Si el documento es demasiado extenso, podría hacerte consumir demasiados _tokens_ sin necesidad, y por consiguiente dinero/energía/uso de IA.

<div class="cuadro-info">

  <aside style = "font-size: 90%;">
    <strong>Recomiendo usar <code>agents.md</code></strong> cuando tengamos proyectos medianos o grandes, que requieren contexto, conocimientos básicos o instrucciones específicas. Así la IA ya sabrá de qué se trata el proyecto, su temática, tus preferencias para programación y análisis, qué debe hacer y evitar, etc.
  </aside>
  
</div>

## Modo _planificación_

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-laptop-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Arnés de IA</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-repeat fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Loop</span>
</span>

La IA no siempre decide correctamente: lo mejor es que la guíes elaborando un plan primero.

<i class='fas fa-clipboard-list icono-lateral'></i>

Puedes entregarle tú un plan enumerando las acciones que necesitas que haga, o puedes usar el **modo planificación** disponible en arneses de IA como [Posit Assistant](#integración-directa-con-r-posit-assistant), Claude Code y otros. 

El modo planificación hace que la IA **piense antes de actuar**, generando una lista de contexto, objetivos, pasos a seguir y limitaciones. Esto te da un momento para **revisar** el trabajo que hará la IA, y aplicar **correcciones** antes de que haga cualquier cosa.
<div class="cuadro-info">

  <aside style = "font-size: 90%;">
    <strong>Recomiendo el modo planificación</strong> cuando necesites hacer algo complejo o extenso con IA, principalmente para tener <em><strong>control</strong></em> e <strong>incidencia</strong> sobre el proceso, y también para que la IA no se descarrile haciendo cosas innecesarias o no solicitadas.
  </aside>
  
</div>

Otro gran beneficio (cognitivo y psicológico) de usar la planificación es **comprender** con tu cabecita lo que hace la IA para no sentir que la IA trabaja sin que entendamos qué hizo o por qué lo hizo.

## _Skills_

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-message fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Chatbot</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Código</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-laptop-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Arnés de IA</span>
</span>

<i class='fas fa-gear icono-lateral'></i>

La IA responde sólo en base a su conocimiento general, pero nosotr@s sabemos dónde encontrar **conocimiento específico** que apunta directamente a lo que necesitamos. Por eso, lo mejor es entregarle a la IA el **contexto** para que sepa directamente **cómo se hacen las cosas** en vez de depender en su propio conocimiento. Para esto sirven las _skills_!

Las _skills_ son documentos de texto con instrucciones y contenido que el LLM puede leer cuando lo considere relevante, sirviendo como un repositorio de conocimiento extra controlado por ti. 

Una razón de que existan las _skills_ es que **añadir contexto cuesta dinero**, entonces la gracia de las _skills_ es que el modelo solamente carga el contexto que necesita para cada tarea sin tener que leerse un libro enorme cada vez que lo invocas.

A continuación te dejo sitios donde puedes encontrar _skills_ para R:

- [Awesome R Stats Skills](https://github.com/christopherkenny/awesome-rstats-skills)
- [A collection of Claude Skills from Posit](https://github.com/posit-dev/skills)
- [Modern R Development Guide](https://github.com/jeremy-allen/claude-skills), originalmente un [archivo `agents.md` por Sarah Johnson](https://gist.github.com/sj-io/3828d64d0969f2a0f05297e59e6c15ad) separado en skills por Jeremy Allen
- [A Few Claude Skills for R Users](https://rworks.dev/posts/claude-skills-for-r-users/) por Isabella Velásquez

[Posit Assistant](#integración-directa-con-r-posit-assistant) viene con varias _skills_ de R instaladas!

#### Instalación de _skills_

<i class='fas fa-circle-arrow-down icono-lateral'></i>

Como las _skills_ son archivos de texto, simplemente hay que ponerlas en `.posit/assistant/skills/` dentro de una carpeta con el nombre de la _skill_.

También puedes instalar _skills_ a nivel de usuario en tu computador, para que estén disponibles en todas tus sesiones de R, instalándolas aquí: `~/.posit/assistant/skills/{nombre-de-la-skill}/SKILL.md`.

<div class="cuadro-info">

  <aside style = "font-size: 90%;">
    Por ejemplo, si quieres instalar 
<a href="https://github.com/posit-dev/skills/blob/main/r-lib/r-mirai/SKILL.md" target="_blank" rel="noopener">la <em>skill</em> de <code>mirai</code></a> para usar el paquete <code>{mirai}</code> para paralelizar la ejecución de R, tienes que descargar el archivo <code>SKILL.md</code> y ponerlo dentro de <code>.posit/assistant/skills/r-mirai/SKILL.md</code> en tu proyecto de R.
  </aside>
  
</div>

#### Uso de _skills_

Simplemente pídele algo a tu IA relacionado a las _skills_ que tienes instaladas, o pídele explícitamente. Algunos _harness_ permiten ejecutar las skills directamente con un _slash_, por ejemplo `/quarto-authoring` para usar [la _skill_ de documentos Quarto](https://github.com/posit-dev/skills/tree/main/quarto/quarto-authoring).

En tu proyecto de R debería haber una carpeta invisible `.posit`, y dentro de ella la carpeta `assistant`. De
`.positai/skills/{skill-name}/SKILL.md`

Recuerda que cargar una _skill_ hace que entre en el contexto de tu IA, y por lo tanto significa un costo!

<div class="cuadro-info">

  <aside style = "font-size: 90%;">
    <strong>Recomiendo usar <em>skills</em></strong> cuando necesitemos instrucciones específicas para ciertos procedimientos que la IA no maneja bien, o cuando hay un contexto extenso que sólo se necesita en ciertos momentos. Por ejemplo, <em>skills</em> sobre paquetes de R avanzados y para metodologías o procedimientos estadísticos complejos.
  </aside>
  
</div>

<!---
Para mantener este blog uso dos _skills_: una con mi [estilo personal de escritura](https://github.com/bastianolea/blog-R/blob/master/.posit/assistant/skills/estilo-escritura/SKILL.md) y otra que documenta [cómo funciona la estructura del blog](https://github.com/bastianolea/blog-R/blob/master/.posit/assistant/skills/hugo-blog/SKILL.md), que Posit Assistant consulta automáticamente cada vez que escribo o modifico una publicación.
--->

## Herramientas de autocompletado

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-registered fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">RStudio</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Código</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-ticket fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Posit AI Pass</span>
</span>

<i class='fas fa-laptop-code icono-lateral'></i>

La forma más básica de integrar IA en R es usarla para autocompletar; es decir, que a partir de lo que has escrito, sugiera cambios y nuevo código. 

RStudio y Positron integran esta capacidad con _Posit Next Edit Suggestion_, un sistema que usa IA para sugerir código directamente en tu IDE.

En RStudio puedes activarla en _Tools → Global Options → Assistant → Code Suggestions_

Revisa más información sobre [_Next Edit Suggestion_ aquí](https://positron.posit.co/assistant-completions.html#posit-ai-nes) o lee una [nota técnica sobre su funcionamiento](https://simonpcouch.com/blog/2026-03-06-nes/).

### Completado y corrección de código con [Gander](https://bastianolea.rbind.io/blog/gander)

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-registered fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">RStudio</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-key fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Llave de API</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Código</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-microchip fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">IA local</span>
</span>

Las sugerencias de autocompletado de más arriba aparecen automáticamente, pero también existen herramientas para invocar la ayuda de IA cuando y donde la necesites, por ejemplo con el [paquete de R `{gander}`](https://bastianolea.rbind.io/blog/gander). 

Con Gander, al seleccionar texto e invocar un atajo de teclado se abre una ventana donde puedes pedirle a la IA que haga cambios, correcciones o mejoras.

En mi caso, tengo configurado [Gander](https://bastianolea.rbind.io/blog/gander) con las teclas _comando + shift + G:_

![](https://bastianolea.rbind.io/blog/gander/gander_keys.png)

Sin embargo, para usarlo necesitas [configurar una llave de API en R!](https://bastianolea.rbind.io/blog/ellmer/#proveedores-de-modelos-de-lenguaje-en-la-nube)

## Integración directa con R: _Posit Assistant_

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-laptop-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Arnés de IA</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-cube fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Proyectos</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-registered fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">RStudio</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-window-maximize fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Positron</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fab fa-r-project fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Entorno de R</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Código</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-file fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Archivos</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-repeat fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Loop</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-ticket fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Posit AI Pass</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-microchip fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">IA local</span>
</span>

[Posit Assistant](https://bastianolea.rbind.io/blog/posit_assistant/) es un asistente de IA **integrado directamente** en RStudio o Positron, y es mi herramienta predilecta para apoyar mi trabajo en R con IA.

Su principal fortaleza es ser un _AI harness_ que tiene **acceso a tu consola y entorno de R**, lo que lo distingue de otras alternativas, ya que:

- Revisa los scripts de tu proyecto para **entender** lo que estás haciendo
- Puede **ver y manipular tus datos** directamente desde tu entorno
- **Ejecuta código de R** para comprender tus datos antes de actuar
- Realiza pruebas con código de R sobre tus datos, y también los explora visualmente
- Sabe qué archivo estás editando en tu IDE, y busca las partes que mencionas para editarlas o corregirlas

Se trata de un sistema **excelente** para consultas breves de código, corrección de problemas, para llevar a cabo análisis estadísticos completos, para escribir reportes de análisis de datos, para implementar cambios grandes, desarrollar aplicaciones, o lo que quieras. 

Posit Assistant tiene el beneficio de funcionar con **amplio contexto y herramientas optimizadas para R**, como consulta de documentación oficial de paquetes, principios de programación científica y reproducible, y mayor mesura al tratar temáticas de datos y estadísticas.

**Más información:** [Posit Assistant, una IA para análisis de datos integrada en RStudio](https://bastianolea.rbind.io/blog/posit_assistant/index.md): Recientemente Posit, la corporación detrás de RStudio y responsable de muchos de los paquetes que más usamos en el ecosistema de R, anunció la integración oficial de inteligencia artificial en…

****¿Cómo acceder a Posit Assistant?****

Para usar Posit Assistant en principio se requiere de una suscripción a [Posit AI Pass](https://posit.ai), que cobra lo mismo que el acceso a cualquier proveedor de IA + un pequeño porcentaje extra para financiar sus operaciones. A cambio tienes la conveniencia de cambiar entre distintos modelos, simplicidad de configuración y apoyar el financiamiento del software libre.

También puedes hacer funcionar Posit Assistant con [múltiples proveedores](https://assistant.posit.co/docs/getting-started/providers/), no sólo [Posit AI Pass](https://posit.ai), así que puedes usar tus propias llaves de API e incluso modelos locales.

Algunos usos que le puedes dar:

- Limpieza de datos, con un _modo_ específico para estas tareas 
- Redacción de reportes gracias a su capacidad de explorar y visualizar tus datos
- Escritura de documentación de proyectos complejos, incluyendo diagramas
- Implementación de tests unitarios para validar datos y funciones de paquetes de R

<div class="cuadro-info">

  <aside style = "font-size: 90%;">
    <strong>Recomiendo Posit Assistant</strong> porque ofrece capacidades avanzadas con mínima configuración, y con amplia seguridad en términos de privacidad de datos, responsabilidad en el análisis y solicitud de permisos.
  </aside>
  
</div>

## Programación general con IA: _Claude Code_

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-laptop-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Arnés de IA</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-key fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Llave de API</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-code fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Código</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-file fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Archivos</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-repeat fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">loop</span>
</span>

<i class='fas fa-terminal icono-lateral'></i>

[Claude Code](https://claude.com/es/product/claude-code) (o Codex de OpenAI, Gemini CLI, Open Code, [Posit Assistant TUI](https://assistant.posit.co/downloads/tui/) u otras) es un software de línea de comandos (CLI) que instalas en tu computadora para dejar que la IA trabaje directamente sobre tus propios archivos, scripts y carpetas, usando comandos propios de tu computadora.

Esto habilita posibilidades avanzadas que también permite [Posit Assistant](#integración-directa-con-r-posit-assistant), pero mucho más amplias en el sentido de que puede ocupar otros lenguajes de programación y en general hacer _cualquier cosa_ sobre tu sistema. En este sentido habilita lo que muchos llaman _vibe coding_, la práctica de simplemente describir lo que quieres que se desarrolle sin que tengas que saber nada.

> **Aviso:** Sólo recomiendo usarlo si sabes lo que estás haciendo!
 

_Para usarlo necesitas de una llave de API._

## Permitir que la IA use R

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-key fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Llave de API</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fab fa-r-project fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Entorno de R</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-file fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Datos</span>
</span>

<span class="btn-links mr2 mb2 ba dib mini-tag">
  <i class="fas fa-wrench fa-lg fa-fw mr2" style="margin-right:4px;"></i><span style="position: relative; top: -1px;">Herramientas</span>
</span>

Una última manera de usar IA en R es usarla directamente en el lenguaje de programación, o bien, que la IA use R!

[El paquete de R `{ellmer}`](https://bastianolea.rbind.io/blog/ellmer/) facilita la integración de inteligencia artificial en funciones de R, por ejemplo para crear una función que clasifica textos, para redactar respuestas o salidas paraa tus funciones, y más. 

En princpio, cualquier cosa que una IA puede hacer podría ser integrada en una función de R y para aplicarla a tus datos de una manera más **controlada** y **reproducible**.

**Publicación relacionada:** [Interactúa con modelos de lenguaje (LLM) y chatea con IAs directamente desde R](https://bastianolea.rbind.io/blog/ellmer/index.md): La IA es útil para distintos aspectos del análisis de datos, como interpretar resultados, explorar conjuntos de datos, redactar textos en base a datos, extraer datos estructurados (como entrevistas o…

Uno de los usos principales es completar el ciclo **R → IA → R**, donde creamos una función en R que la IA puede usar, y luego usamos la IA para que use dicha función y nos entregue mejores respuestas. Por ejemplo, hacer una función de R que consulte datos para hacer que la IA pueda consultar datos, una función que realice un cálculo estadístico para que la IA calcule correctamente, etcétera.

**Publicación relacionada:** [Potencia las capacidades de la IA entregándole herramientas (tool calling) basadas en R](https://bastianolea.rbind.io/blog/herramientas_llm/index.md): La inteligencia artificial no lo sabe todo. Y lo que no sabe, lo inventa. Conociendo las limitaciones de la IA podemos hacer un mejor uso de ella. Por ejemplo, la IA no tiene acceso a datos, ni es…

También se puede hacer que la IA use R para consultar grandes cuerpos de información (por medio de RAG), y así garantizar que las respuestas se ajusten a conocimiento validado y/o altamente específico, **disminuyendo las alucinaciones**.

**Publicación relacionada:** [Aumenta el conocimiento de inteligencias artificiales creando un sistema de RAG con R](https://bastianolea.rbind.io/blog/rag_ragnar/index.md): La generación aumentada por recuperación o RAG, por sus siglas en inglés (retrieval-augmented generation) es un proceso por medio del cual puedes aumentar o complementar el conocimiento de una…

De esta manera podemos [programar _chatbots_](https://bastianolea.rbind.io/blog/shinychat/) que combinan el conocimiento de la IA con cualquier capacidad que tenga R, incluso controlar aplicaciones Shiny, como en [CensoLab](https://santiagorusers.github.io/posts/2026-08-26/)!

**Publicación relacionada:** [Crea un chatbot de inteligencia artificial con R](https://bastianolea.rbind.io/blog/shinychat/index.md): Este tutorial encuentras todo lo necesario para desarrollar tu propio chatbot con R, basándonos en una aplicación Shiny y en modelos de inteligencia artificial. El objetivo es crear un chat…

## Recursos
- [Posit AI Pass](https://posit.ai), servicio de suscripción de Posit para integrar IA con RStudio y Positron
- [Modern R workflow](https://bastianolea.rbind.io/blog/ia_r/pos.it/modern-r-workflow), workshop impartido en [posit::conf(2026)](https://conf.posit.co/2026/)
- [Awesome R Stats Skills](https://github.com/christopherkenny/awesome-rstats-skills), extensa colección de _skills_ para R
- [Herramientas para usar modelos de lenguaje de gran escala (LLM) en R](https://luisdva.github.io/llmsr-book/es/index.es.html)

**Publicaciones sobre inteligencia artificial:**

- [Notas sobre generación de texto usando IA](https://bastianolea.rbind.io/blog/2026-08-08/index.md)
- [Posit Assistant, una IA para análisis de datos integrada en RStudio](https://bastianolea.rbind.io/blog/posit_assistant/index.md)
- [Crea un chatbot de inteligencia artificial con R](https://bastianolea.rbind.io/blog/shinychat/index.md)
- [Aumenta el conocimiento de inteligencias artificiales creando un sistema de RAG con R](https://bastianolea.rbind.io/blog/rag_ragnar/index.md)
- [Creando una función para consultar datos en R](https://bastianolea.rbind.io/blog/funcion_consultar_datos/index.md)
