<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Consejos on Bastián Olea</title>
    <link>https://bastianolea.rbind.io/tags/consejos/</link>
    <description>Recent content in Consejos on Bastián Olea</description>
    <generator>Hugo</generator>
    <language>es-ES</language>
    <lastBuildDate>Tue, 16 Jun 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://bastianolea.rbind.io/tags/consejos/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Organizar el trabajo en Proyectos de RStudio</title>
      <link>https://bastianolea.rbind.io/blog/r_introduccion/proyectos/</link>
      <pubDate>Sat, 04 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/r_introduccion/proyectos/</guid>
      <description>&lt;h2 id=&#34;proyectos&#34;&gt;Proyectos&#xA;  &lt;a href=&#34;#proyectos&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&#xA;      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;&#xA;      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;&#xA;    &lt;/svg&gt;&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Antes de hacer cualquier trabajo que involucre datos con R, &lt;strong&gt;se recomienda crear un &lt;em&gt;Proyecto&lt;/em&gt; de RStudio&lt;/strong&gt;. Un proyecto es una forma de definir la carpeta específica donde vamos a guardar todos los scripts y archivos que vamos a necesitar. Se caracteriza por un archivo que termina en &lt;code&gt;.Rproj&lt;/code&gt;, que marca nuestro espacio de trabajo: &lt;strong&gt;una sola carpeta que reúne todas las piezas de nuestro análisis.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tutorial: crear un repositorio Git para tu proyecto de R y comparte tu código en GitHub</title>
      <link>https://bastianolea.rbind.io/blog/r_introduccion/tutorial_github/</link>
      <pubDate>Fri, 07 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/r_introduccion/tutorial_github/</guid>
      <description>&lt;a href=&#34;titulo_github-featured.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;titulo_github-featured.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 700px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;br&gt;&#xA;&lt;br&gt;&#xA;&lt;p&gt;En este tutorial aprenderás a empezar a usar Git con tus proyectos de R, mediante la creación de repositorios. Git te permite llevar un registro de las versiones y un control de cambios en tu código, mientras que GitHub te permite subir tus repositorios a un servicio online, en el cual puedes compartir tu código con otras personas, descargar el código de otros, y colaborar en un mismo proyecto.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tipografías lindas para programar en R: Fira Code</title>
      <link>https://bastianolea.rbind.io/blog/2026-06-16/</link>
      <pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/2026-06-16/</guid>
      <description>&lt;p&gt;&#xA;&lt;a href=&#34;https://github.com/tonsky/FiraCode&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Fira Code&lt;/a&gt; es una tipografía muy bonita para programar. Su característica principal es que usa las &lt;strong&gt;ligaduras&lt;/strong&gt;, una característica de la tipografía que une dos o más caracteres en un solo símbolo adaptado, para mostrar los símbolos usados en programación de forma más atractiva.&lt;/p&gt;&#xA;&lt;a href=&#34;pruebas_firacode.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;pruebas_firacode.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 300px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;p&gt;Lo más destacable es que convierte el &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/r_introduccion/conectores/&#34;&gt;símbolo del conector&lt;/a&gt; o &lt;em&gt;pipe&lt;/em&gt; (&lt;code&gt;|&amp;gt;&lt;/code&gt;) en un triangulito, y a la &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/r_introduccion/r_basico/#asignaciones&#34;&gt;flecha de asignación&lt;/a&gt; (&lt;code&gt;&amp;lt;-&lt;/code&gt;) en una flecha de verdad.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Posit Assistant, una IA para análisis de datos integrada en RStudio</title>
      <link>https://bastianolea.rbind.io/blog/posit_assistant/</link>
      <pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/posit_assistant/</guid>
      <description>&lt;p&gt;Recientemente &#xA;&lt;a href=&#34;https://posit.co&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Posit&lt;/a&gt;, la &lt;del&gt;empresa&lt;/del&gt; corporación de beneficio público detrás de RStudio, Positron, y responsable de &#xA;&lt;a href=&#34;https://posit.co/products/open-source/rpackages&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;muchos de los paquetes que más usamos en el ecosistema de R&lt;/a&gt;, anunció la &#xA;&lt;a href=&#34;https://posit.co/blog/introducing-ai-in-rstudio&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;integración oficial de inteligencia artificial en RStudio&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&lt;a href=&#34;https://posit-dev.github.io/assistant/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;strong&gt;Posit Assistant&lt;/strong&gt;&lt;/a&gt; reside en la barra lateral de RStudio y sirve para hacer consultas a una IA relacionadas al análisis de datos, dentro del contexto del proyecto que estés realizando con R.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;posit_assistant_rstudio.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;posit_assistant_rstudio.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 500px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;figcaption style=&#34;max-width: 380px; margin:auto; text-align: center; font-size:80%; opacity:60%; margin-top:-8px; margin-bottom: 24px;&#34;&gt;&#xA;  En la parte superior de RStudio encuentras el botón Posit Assistant.&#xA;&lt;/figcaption&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Extensiones recomendadas para mejorar tus gráficos de `{ggplot2}`</title>
      <link>https://bastianolea.rbind.io/blog/ggplot_extensiones/</link>
      <pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/ggplot_extensiones/</guid>
      <description>&lt;div style=&#34;display: flex; align-items: center; gap: 15px; padding: 14px; &#xA;            background-color: #493365;&#xA;            border-radius: 6px;&#xA;            margin: 20px 40px 20px 40px;&#34;&gt;&#xA;  &#xA;  &lt;div style=&#34;flex-shrink: 0;&#34;&gt;&#xA;    &lt;i class=&#34;fas fa-triangle-exclamation&#34; style=&#34;font-size: 130%; margin-left: 2px; opacity: 1; color: #EAD2FA;&#34;&gt;&lt;/i&gt;&#xA;  &lt;/div&gt;&#xA;  &#xA;  &lt;aside style = &#34;font-size: 90%; color: #EAD2FA;&#34;&gt;&#xA;    Publicación en construcción! A medida que encuentre (y recuerde) más extensiones las iré listando aquí.&#xA;  &lt;/aside&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;!---&#xA;&lt;a href=&#34;ggplot2_extensiones_featured.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;ggplot2_extensiones_featured.png&#34; style=&#39;float: right; border-radius: 5px; max-width: 300px; margin-left: 24px; margin-bottom: 24px;&#39;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;--&gt;&#xA;&lt;div class=&#39;imagen_lateral&#39;&gt;&#xA;  &lt;img src=&#34;ggplot2_extensiones.png&#34;&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Una de las ventajas de usar &lt;code&gt;{ggplot2}&lt;/code&gt; para visualización de datos en R es su &lt;strong&gt;flexibilidad&lt;/strong&gt; y capacidad de &lt;strong&gt;personalización&lt;/strong&gt;. Existen &#xA;&lt;a href=&#34;https://exts.ggplot2.tidyverse.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;muchas extensiones desarrolladas por la comunidad&lt;/a&gt; para agregar nuevas funcionalidades, formas de visualizar datos, mejoras, paletas de colores y más.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cómo dejar de repetirte y escribir código más eficiente en R</title>
      <link>https://bastianolea.rbind.io/blog/repetirse/</link>
      <pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/repetirse/</guid>
      <description>&lt;p&gt;El otro día me llegó un script (muy probablemente hecho por una IA) de más de 9.000 líneas!&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://bastianolea.rbind.io/blog/repetirse/script.mov&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Igual era entendible, porque era un script que producía cientos de gráficos. Pero revisando el script me doy cuenta de que también &lt;strong&gt;se repiten cientos de veces los mismos patrones de código.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Scripts como éstos suelen ser apenas una docena de bloques de código distintos, pero repetidos muchas veces cada uno con mínimas diferencias entre ellos: referencias a columnas distintas, etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crea árboles de las carpetas de tus proyectos con `{printtree}` en R</title>
      <link>https://bastianolea.rbind.io/blog/2026-02-18/</link>
      <pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/2026-02-18/</guid>
      <description>&lt;p&gt;Recientemente &lt;strong&gt;&#xA;&lt;a href=&#34;https://www.linkedin.com/company/estacion-r/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Estación R&lt;/a&gt;&lt;/strong&gt; compartió su &#xA;&lt;a href=&#34;https://www.linkedin.com/posts/estacion-r_rstats-rstatses-rtips-activity-7429863625126977536-Sqng&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;paquete del día&lt;/a&gt; y lo encontré útil.&lt;/p&gt;&#xA;&lt;div style=&#34;width: 100%; text-align: center;&#34;&gt;&#xA;&lt;iframe src=&#34;https://www.linkedin.com/embed/feed/update/urn:li:share:7429863623935684608&#34; height=&#34;1063&#34; width=&#34;504&#34; frameborder=&#34;0&#34; allowfullscreen=&#34;&#34; title=&#34;Publicación integrada&#34;&gt;&lt;/iframe&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Como dice el post, &lt;code&gt;{printtree}&lt;/code&gt; crea árboles de las carpetas de tus proyectos, lo que es muy útil para tener una visión general de la estructura de tus proyectos. Esto puede ser útil de incluir en &lt;strong&gt;informes, reportes o documentación&lt;/strong&gt; de proyectos en los que trabajes, para &lt;strong&gt;dejar por escrito la estructura del proyecto&lt;/strong&gt; y así poder comentar sobre ella para lectores.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Interactúa desde R con una IA que conoce tus datos, archivos y paquetes</title>
      <link>https://bastianolea.rbind.io/blog/btw/</link>
      <pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/btw/</guid>
      <description>&lt;a href=&#34;btw_featured.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;btw_featured.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 700px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;p&gt;En este blog ya hemos visto varias &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/tags/inteligencia-artificial&#34;&gt;herramientas de IA&lt;/a&gt; que te pueden ayudar a usar R, por ejemplo &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/gander/&#34;&gt;el paquete &lt;code&gt;{gander}&lt;/code&gt;&lt;/a&gt;, que al presionar una combinación de teclas cuando tienes código seleccionado invoca una ventana donde puedes pedir a una IA que haga cosas con ese código y/o datos, gracias a un &lt;strong&gt;conocimiento contextual de tu entorno de R&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crear tablas de datos manualmente en R</title>
      <link>https://bastianolea.rbind.io/blog/crear_dataframes/</link>
      <pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/crear_dataframes/</guid>
      <description>&lt;p&gt;Las tablas de datos o &lt;em&gt;dataframes&lt;/em&gt; son la estructura de información principal que usamos en R.&lt;/p&gt;&#xA;&lt;p&gt;En general cargamos los datos desde archivos o bases de datos, pero a veces necesitamos crear &lt;em&gt;dataframes&lt;/em&gt; sencillos a mano, ya sea para introducir datos manualmente, corregir datos, o crear pequeñas tablas auxiliares o de consulta (&lt;em&gt;lookup tables&lt;/em&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Aquí te muestro dos formas de hacerlo: usando la función base &lt;code&gt;data.frame()&lt;/code&gt; y la función &lt;code&gt;tribble()&lt;/code&gt; del &#xA;&lt;a href=&#34;https://tibble.tidyverse.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;paquete &lt;code&gt;tibble&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nuevo sitio con todo lo necesario para aprender R</title>
      <link>https://bastianolea.rbind.io/blog/aprender_r/</link>
      <pubDate>Mon, 01 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/aprender_r/</guid>
      <description>&lt;a href=&#34;aprende_r_1-featured.jpeg&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;aprende_r_1-featured.jpeg&#34; style=&#39;border-radius: 5px; width: 60%; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#39;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;p&gt;Estoy haciendo hace varios días un sitio llamado &lt;strong&gt;&#xA;&lt;a href=&#34;https://bastianolea.github.io/aprende_r/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Aprende R&lt;/a&gt;&lt;/strong&gt;. La idea es agrupar en un sólo lugar todos los &lt;strong&gt;posts y tutoriales orientados a principiantes&lt;/strong&gt; que tengo, y así poder dirigir a la gente que quiere aprender a un sitio donde tendrán todo lo necesario (o al menos eso espero).&lt;/p&gt;&#xA;&lt;p&gt;El objetivo es poder entregar una &lt;strong&gt;guía clara para el aprendizaje autodidacta de R&lt;/strong&gt; para el análisis de datos, y lo pienso también como algo que me puede motivar más a seguir escribiendo tutoriales y mejorando &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/categories/tutoriales/&#34;&gt;los que ya tengo&lt;/a&gt;. Por ejemplo, me di cuenta que me faltaba explicar mejor el uso de conectores o &lt;em&gt;pipes&lt;/em&gt; en R, así que &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/r_introduccion/conectores/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;hice un post&lt;/a&gt; más completo para ponerlo en &#xA;&lt;a href=&#34;https://bastianolea.github.io/aprende_r/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Aprender R&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Encuentra diferencias entre objetos de R con {waldo}</title>
      <link>https://bastianolea.rbind.io/blog/waldo/</link>
      <pubDate>Mon, 10 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/waldo/</guid>
      <description>&lt;p&gt;&#xA;&lt;a href=&#34;https://waldo.r-lib.org&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;{waldo}&lt;/code&gt;&lt;/a&gt; es un paquete de R para encontrar diferencias entre objetos y conjuntos de datos.&lt;/p&gt;&#xA;&lt;p&gt;Creemos dos vectores de datos de ejemplo:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vector_a&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;b&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;c&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;d&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;e&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;vector_b&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;a&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;b&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;c&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;f&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si los comparamos con la función &lt;code&gt;all.equal()&lt;/code&gt;, de R base, obtenemos un resultado poco informativo:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# comparar con base&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;all.equal&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;vector_a&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;vector_b&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;[1] &amp;quot;Lengths (5, 4) differ (string compare on first 4)&amp;quot;&#xA;[2] &amp;quot;1 string mismatch&amp;quot;                                &#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Básicamente nos dice &amp;ldquo;son distintos&amp;rdquo; 🤨&lt;/p&gt;&#xA;&lt;p&gt;Pero si usamos &lt;code&gt;waldo::compare()&lt;/code&gt;, obtenemos una comparación ordenada y clara de las diferencias:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crea una carpeta inteligente con todos tus proyectos de R en Mac</title>
      <link>https://bastianolea.rbind.io/blog/2025-10-29/</link>
      <pubDate>Wed, 29 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/2025-10-29/</guid>
      <description>&lt;p&gt;Si eres usuario/a de macOS y de R, aquí va un truquito para facilitar tu trabajo.&lt;/p&gt;&#xA;&lt;p&gt;En el Finder puedes crear &lt;strong&gt;carpetas inteligentes&lt;/strong&gt;, que muestran automáticamente archivos que cumplen ciertos criterios, intependiente de donde estén en tu computador. Básicamente son carpetas que guardan resultados de búsqueda que se mantienen actualizados.&lt;/p&gt;&#xA;&lt;p&gt;Con esto podemos crear una carpeta que muestre todos tus proyectos de R, para poder acceder a ellos más rápido.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Comandos comunes de Git</title>
      <link>https://bastianolea.rbind.io/blog/git_comandos/</link>
      <pubDate>Mon, 27 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/git_comandos/</guid>
      <description>&lt;p&gt;&lt;code&gt;git&lt;/code&gt; es una herramienta para el control de versiones de código, respaldo de código, y colaboración. En otro post hice un tutorial para &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/r_introduccion/tutorial_github/&#34;&gt;aprender a usar &lt;code&gt;git&lt;/code&gt; y GitHub con R y RStudio&lt;/a&gt;. En este post voy a mantener una lista&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; de los comandos que más uso en &lt;code&gt;git&lt;/code&gt;, así como los comandos que necesito para resolver los &lt;strong&gt;problemas más frecuentes.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div style=&#34;margin: 28px 0;&#34;&gt;&#xA;    &lt;p class=&#34;titulo-panel&#34;&gt;&#xA;      Publicaciones relacionadas&#xA;    &lt;/p&gt;&#xA;&#xA;  &lt;a href=&#34;https://bastianolea.rbind.io/blog/r_introduccion/tutorial_github/&#34;&#xA;     style=&#34;display: flex;&#xA;            flex-direction: row;&#xA;            align-items: stretch;&#xA;            text-decoration: none;&#xA;            color: inherit;&#xA;            /*border: 1px solid #9069C035;*/&#xA;            border: solid 2px #A885C6AA;&#xA;            border-radius: 8px;&#xA;            overflow: hidden;&#xA;            /*background-color: #9069C00d;*/&#xA;            background-color: #9069C020;&#xA;            &#34;&gt;&#xA;&#xA;    &#xA;    &lt;figure style=&#34;flex-shrink: 0;&#xA;                   position: relative;&#xA;                   width: 140px;&#xA;                   min-height: 80px;&#xA;                   margin: 10px 0 10px 10px;&#xA;                   overflow: hidden;&#xA;                   border-radius: 5px;&#34;&gt;&#xA;      &lt;img src=&#34;https://bastianolea.rbind.io/blog/r_introduccion/tutorial_github/titulo_github-featured.png&#34;&#xA;           alt=&#34;Tutorial: crear un repositorio Git para tu proyecto de R y comparte tu código en GitHub&#34;&#xA;           style=&#34;position: absolute;&#xA;                  inset: 0;&#xA;                  width: 100%;&#xA;                  height: 100%;&#xA;                  object-fit: cover;&#xA;                  object-position: center top;&#xA;                  margin: 0;&#34;&gt;&#xA;    &lt;/figure&gt;&#xA;    &#xA;&#xA;    &lt;div style=&#34;padding: 15px 20px;&#xA;                flex: 1;&#xA;                display: flex;&#xA;                flex-direction: column;&#xA;                justify-content: center;&#xA;                gap: 6px;&#34;&gt;&#xA;&#xA;      &lt;p style=&#34;margin: 0;&#xA;                font-size: 95%;&#xA;                color: #9069C0;&#xA;                font-weight: bold;&#xA;                line-height: 1.35;&#34;&gt;&#xA;        Tutorial: crear un repositorio Git para tu proyecto de R y comparte tu código en GitHub&#xA;      &lt;/p&gt;</description>
    </item>
    <item>
      <title>Taller: Compartir y colaborar desde el cruce entre las ciencias de datos y las ciencias sociales</title>
      <link>https://bastianolea.rbind.io/blog/taller_datos_unam/</link>
      <pubDate>Mon, 27 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/taller_datos_unam/</guid>
      <description>&lt;p&gt;El viernes 22 de agosto de 2025 tuve el honor de participar en las clases magistrales del &lt;strong&gt;Diplomado de Ciencia de Datos para Ciencias Sociales y Humanidades&lt;/strong&gt; de la Facultad de Estudios Superiores Acatlán, Universidad Nacional Autónoma de México (UNAM).&lt;/p&gt;&#xA;&lt;p&gt;Me pidieron hacer un taller acerca de cómo crear una &lt;em&gt;marca personal&lt;/em&gt; como científico de datos, pero dándole unas vueltas a esa idea, terminé hablando sobre tres principios: &lt;strong&gt;crear, diferenciarse y compartir&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Acelera tus análisis con `{gander}`, un asistente de IA integrado en RStudio</title>
      <link>https://bastianolea.rbind.io/blog/gander/</link>
      <pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/gander/</guid>
      <description>&lt;div style=&#34;max-width:400px; margin: auto;&#34;&gt;&#xA;&lt;a href=&#34;gander.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;gander.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 700px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;div style = &#34;margin-left: -16px;&#34;&gt;&#xA;  &#xA;  &lt;details closed id=&#34;PageTableOfContents&#34;&gt;&#xA;    &lt;summary&gt;&#xA;      &lt;h2 class=&#34;mv0 f5 fw7 ttu tracked dib&#34; style = &#34;margin-left: 6px; font-size: 120%;&#34;&gt;Índice&lt;/h2&gt;&#xA;      &lt;/summary&gt;&#xA;    &lt;div class=&#34;pl2 pr0 mh0&#34; style = &#34;font-size: 90%; margin-top: -8px; margin-left: 16px; margin-bottom: 32px;&#34;&gt;&#xA;    &lt;nav id=&#34;TableOfContents&#34;&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#instalación&#34;&gt;Instalación&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#configurar-un-proveedor-de-iamodelo-de-lenguaje&#34;&gt;Configurar un proveedor de IA/modelo de lenguaje&lt;/a&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#opción-a-instalar-un-modelo-de-lenguaje-local-desde-r&#34;&gt;Opción A: instalar un modelo de lenguaje local desde R&lt;/a&gt;&lt;/li&gt;&#xA;        &lt;li&gt;&lt;a href=&#34;#opción-b-configurar-un-proveedor-de-ia-en-la-nube&#34;&gt;Opción B: configurar un proveedor de IA en la nube&lt;/a&gt;&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#guardar-configuración-del-modelo&#34;&gt;Guardar configuración del modelo&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#configurar-atajo-de-teclado&#34;&gt;Configurar atajo de teclado&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#usar-gander&#34;&gt;Usar &lt;code&gt;{gander}&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#ejemplo-de-uso&#34;&gt;Ejemplo de uso&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/nav&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/details&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;p&gt;&#xA;&lt;a href=&#34;https://simonpcouch.github.io/gander/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;{gander}&lt;/code&gt; es un paquete de R para integrar asistentes de inteligencia artificial (IA) directamente en RStudio.&lt;/a&gt; Solo con presionar una combinación de teclas, podrás pedirle a un asistente con tus propias palabras que escriba código, corrija tu código, o incluso que genere gráficos.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Validación de datos con `{testthat}` y `{pointblank}`</title>
      <link>https://bastianolea.rbind.io/blog/validacion_datos/</link>
      <pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/validacion_datos/</guid>
      <description>&lt;a href=&#34;pointblank-1.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;pointblank-1.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 700px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;p&gt;En un &#xA;&lt;a href=&#34;../../../blog/validacion_basica&#34;&gt;post anterior&lt;/a&gt; hablé sobre cómo hacer validación básica de datos en R. A grandes razgos, vimos la utilidad de crear funciones que contengan pruebas simples para validar la calidad de tus datos, tales como revisar cantidad de filas, cantidad de datos perdidos, y otros.&lt;/p&gt;&#xA;&lt;p&gt;Dado que R es un lenguaje enfocado en el análisis de datos, existen varios paquetes que nos pueden ayudar con la validación de datos!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Convertir zonas horarias con R</title>
      <link>https://bastianolea.rbind.io/blog/2025-08-22/</link>
      <pubDate>Fri, 22 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/2025-08-22/</guid>
      <description>&lt;p&gt;Si necesitas saber a qué hora es un evento que ocurre en otro país, puedes usar &lt;code&gt;{lubridate}&lt;/code&gt; para convertir las zonas horarias:&lt;/p&gt;&#xA;&lt;p&gt;Primero definimos la fecha del evento, la zona horaria del evento y tu zona horaria:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;fecha_evento&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;2025-08-22 18:00:00&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;zona_horaria_evento&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Mexico/General&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;zona_horaria_local&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Chile/Continental&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si no sabes cuál es tu zona horaria, &#xA;&lt;a href=&#34;https://en.wikipedia.org/wiki/List_of_tz_database_time_zones&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;en esta tabla&lt;/a&gt; hay una lista de identificadores de zona horaria (&lt;code&gt;TZ Identifier&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Luego usamos &lt;code&gt;{lubridate}&lt;/code&gt; para convertir la fecha/hora en al zona horaria de tu interés:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Echa un vistazo preliminar a tus datos con {visdat}</title>
      <link>https://bastianolea.rbind.io/blog/visdat/</link>
      <pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/visdat/</guid>
      <description>&lt;p&gt;En una clase reciente me preguntaron &#xA;&lt;a href=&#34;../../../blog/2025-10-21/&#34;&gt;cómo saber de una dónde hay datos perdidos o &lt;em&gt;missing&lt;/em&gt;&lt;/a&gt; en un conjunto de datos. La respuesta que di fue usar &lt;code&gt;summarize()&lt;/code&gt; para contar la cantidad de datos perdidos en todas las columnas de un dataframe:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dplyr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# manipulación de datos&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;messy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# ensuciar datos&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# agregar datos perdidos al azar&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;iris_m&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;iris&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&amp;gt;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;n&#34;&gt;messy&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;make_missing&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;cols&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;names&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;iris&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;iris_m&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;|&amp;gt;&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;c1&#34;&gt;# resumir los datos&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nf&#34;&gt;summarize&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# en todas las columnas&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nf&#34;&gt;across&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;everything&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(),&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           &lt;span class=&#34;c1&#34;&gt;# contar la cantidad de missing&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           &lt;span class=&#34;o&#34;&gt;~&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;sum&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;is.na&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;.x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre&gt;&lt;code&gt;  Sepal.Length Sepal.Width Petal.Length Petal.Width Species&#xA;1           12          21           16          21      11&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Pero hay formas más convenientes de hacerlo!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Validación básica de datos con R</title>
      <link>https://bastianolea.rbind.io/blog/validacion_basica/</link>
      <pubDate>Thu, 07 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/validacion_basica/</guid>
      <description>&lt;div style = &#34;margin-left: -16px;&#34;&gt;&#xA;  &#xA;  &lt;details closed id=&#34;PageTableOfContents&#34;&gt;&#xA;    &lt;summary&gt;&#xA;      &lt;h2 class=&#34;mv0 f5 fw7 ttu tracked dib&#34; style = &#34;margin-left: 6px; font-size: 120%;&#34;&gt;Índice&lt;/h2&gt;&#xA;      &lt;/summary&gt;&#xA;    &lt;div class=&#34;pl2 pr0 mh0&#34; style = &#34;font-size: 90%; margin-top: -8px; margin-left: 16px; margin-bottom: 32px;&#34;&gt;&#xA;    &lt;nav id=&#34;TableOfContents&#34;&gt;&#xA;  &lt;ul&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#validación-básica&#34;&gt;Validación básica&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#funciones-de-validación&#34;&gt;Funciones de validación&lt;/a&gt;&lt;/li&gt;&#xA;    &lt;li&gt;&lt;a href=&#34;#validación-avanzada&#34;&gt;Validación avanzada&lt;/a&gt;&lt;/li&gt;&#xA;  &lt;/ul&gt;&#xA;&lt;/nav&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/details&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;p&gt;Si estás procesando muchos datos y/o datos que vienen de distintas fuentes con R, validarlos puede ayudarte a encontrar problemas antes de que sea tarde! 😱&lt;/p&gt;&#xA;&lt;p&gt;¿Qué es la validación de datos? Son las distintas pruebas que crearemos para &lt;strong&gt;confirmar que nuestros datos cumplen ciertos criterios&lt;/strong&gt;. El objetivo es entregarnos la &lt;strong&gt;certeza&lt;/strong&gt; de que nuestros datos son como esperamos luego de procesarlos. Para lograrlo, ponemos a prueba nuestros datos en distintos puntos de nuestros procesos de análisis de datos.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reduce el tamaño de tus reportes Quarto con este truco</title>
      <link>https://bastianolea.rbind.io/blog/2025-07-08/</link>
      <pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/2025-07-08/</guid>
      <description>&lt;p&gt;Consejo: si tus &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/quarto_reportes/&#34;&gt;documentos Quarto&lt;/a&gt; salen pesados por tener muchos gráficos, intenta cambiar en el &lt;code&gt;YAML&lt;/code&gt; el siguiente argumento para que los gráficos incluidos vayan en formato &lt;code&gt;.jpg&lt;/code&gt; en vez de &lt;code&gt;.png&lt;/code&gt; (por defecto).&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;fig-format&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;jpeg&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style=&#34;max-width:390px; margin:auto&#34;&gt;&#xA;&lt;a href=&#34;quarto_yaml-featured.png&#34; target=&#34;_blank&#34;&gt;&#xA;&#xA;  &lt;img src=&#34;quarto_yaml-featured.png&#34; style=&#34;border-radius: 5px; width: 80%; max-width: 700px; display: block; margin: auto; margin-bottom: 8px; margin-top: 8px;&#34;&gt;&#xA;  &#xA;&lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Las imágenes &lt;code&gt;.jpg&lt;/code&gt; son más livianas, porque usan compresión, aunque pueden tener un poco menos de calidad y no tienen fondo transparente. Por otro lado, las imágenes &lt;code&gt;.png&lt;/code&gt; son &lt;em&gt;lossless&lt;/em&gt; (no tienen compresión ni pérdida de calidad) y transparencia, pero a cambio son más pesadas.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sugerencias y autocompletado de código con GitHub Copilot</title>
      <link>https://bastianolea.rbind.io/blog/github_copilot/</link>
      <pubDate>Mon, 09 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/github_copilot/</guid>
      <description>&lt;img src = brand-github-copilot.svg style = &#34;float: right; max-width: 128px; margin-left: 20px;&#34;&gt;&#xA;&lt;p&gt;Uno de beneficios concretos de los avances en inteligencia artificial generativa son las herramientas de autocompletado de código&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. Una de estas herramientas es &#xA;&lt;a href=&#34;https://github.com/features/copilot&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;GitHub Copilot&lt;/a&gt;, la cual puede &lt;strong&gt;integrarse directamente en RStudio&lt;/strong&gt; para ayudarte a programar en R. En este post mostraré algunos casos de uso real donde Copilot me ha servido.&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;h3 id=&#34;para-qué-sirve&#34;&gt;¿Para qué sirve?&#xA;  &lt;a href=&#34;#para-qu%c3%a9-sirve&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&#xA;      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;&#xA;      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;&#xA;    &lt;/svg&gt;&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&#xA;&lt;a href=&#34;https://github.com/features/copilot&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Copilot&lt;/a&gt; es un servicio de autocompletado de código que puede integrarse directamente en RStudio. Sirve para recibir sugerencias de código mientras programas, lo que puede ayudarte a &lt;strong&gt;escribir código más rápido&lt;/strong&gt;. Esta herramienta utiliza modelos de lenguaje entrenados con una gran cantidad de código fuente disponible públicamente, lo que le permite ofrecer sugerencias contextuales basadas en el código que ya has escrito.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Copia y pega datos en R con {datapasta} y {clipr}</title>
      <link>https://bastianolea.rbind.io/blog/datapasta/</link>
      <pubDate>Fri, 06 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/datapasta/</guid>
      <description>&lt;p&gt;&#xA;&lt;a href=&#34;https://github.com/MilesMcBain/datapasta&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;{datapasta}&lt;/code&gt;&lt;/a&gt; es un paquete para R que te ayuda a copiar y pegar datos desde y hacia R.&lt;/p&gt;&#xA;&lt;p&gt;Instala &lt;code&gt;{datapasta}&lt;/code&gt; ejecutando el siguiente código:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;install.packages&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;datapasta&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;repos&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;c&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mm&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;https://milesmcbain.r-universe.dev&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;getOption&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;repos&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&lt;h2 id=&#34;copiar&#34;&gt;Copiar&#xA;  &lt;a href=&#34;#copiar&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&#xA;      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;&#xA;      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;&#xA;    &lt;/svg&gt;&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;code&gt;{datapasta}&lt;/code&gt; puede ayudarte a &lt;strong&gt;compartir fácilmente datos&lt;/strong&gt;, al convertir tus datos en texto que puedes copiar y pegar en otro lado, o editar manualmente. Usa la función &lt;code&gt;dpasta()&lt;/code&gt; sobre un dataframe para hacer que los datos aparezcan como en texto directamente debajo de donde la ejecutaste.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ordenar las regiones de Chile de norte a sur en R</title>
      <link>https://bastianolea.rbind.io/blog/ordenar_regiones/</link>
      <pubDate>Fri, 06 Jun 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/ordenar_regiones/</guid>
      <description>&lt;p&gt;La franja larga y angosta que es Chile tiene el beneficio de que sus regiones se ubican casi perfectamente una sobre la otra, de norte a sur. Este orgen geográfico natural de sus regiones resulta familiar para sus habitantes, por lo que se vuelve recomendable ordenar los datos a nivel regional siguiendo este orden geográfico.&lt;/p&gt;&#xA;&lt;p&gt;Creemos una tabla o &lt;em&gt;dataframe&lt;/em&gt; con las regiones de Chile. Ejecuta el siguiente código en R para obtener una tabla:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Limpiar textos con símbolos, tildes o eñes en R</title>
      <link>https://bastianolea.rbind.io/blog/limpiar_texto_simbolos/</link>
      <pubDate>Mon, 31 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/limpiar_texto_simbolos/</guid>
      <description>&lt;p&gt;Amamos el castellano, con sus tildes y eñes, y nos encanta que R no tenga problemas para usar estos símbolos en cualquier parte del lenguaje. Pero hay veces en las que necesitamos deshacernos de estos símbolos especiales, como tildes, eñes, e incluso mayúsculas.&lt;/p&gt;&#xA;&lt;p&gt;Por ejemplo:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Si queremos dar nombres a carpetas (porque puede dar conflictos con otros sistemas operativos o para subir archivos a internet),&lt;/li&gt;&#xA;&lt;li&gt;Si queremos buscar coincidencias de texto con &lt;code&gt;stringr::str_detect()&lt;/code&gt; y queremos aumentar probabilidades de coincidir al omitir variaciones de los caracteres,&lt;/li&gt;&#xA;&lt;li&gt;Si queremos hacer un &lt;code&gt;left_join()&lt;/code&gt; entre dos bases de datos con formas distintas de guardar los datos (todos en mayúscula, todos sin tilde pero con eñes, etc.)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Hay muchas formas distintas de hacerlo, dependiendo de lo que necesitemos. El paquete &lt;code&gt;{stringr}&lt;/code&gt; se enfoca en el procesamiento de texto y tiene varias funciones que nos pueden ayudar.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cargar archivos csv más rápido en R con Arrow</title>
      <link>https://bastianolea.rbind.io/blog/2025-02-12/</link>
      <pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/2025-02-12/</guid>
      <description>&lt;p&gt;Los archivos &lt;code&gt;csv&lt;/code&gt; (&lt;em&gt;comma-separated values,&lt;/em&gt; valores separados por comas) suelen ser el formato más básico para guardar datos. Los beneficios que tienen los csv con respecto a compatibilidad y accesibilidad son a su vez la causa de sus desventajas: son más pesados porque sus datos no se guardan comprimidos, y suelen ser &lt;strong&gt;más lentos de cargar&lt;/strong&gt;, porque los datos no vienen codificados de una forma optimizada.&lt;/p&gt;&#xA;&lt;p&gt;Sin embargo, usualmente grandes bases de datos son guardadas en archivos csv, con varios millones de filas, lo que puede hacer que la carga de un archivo dure entre varios segundos a &lt;strong&gt;minutos&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configura RStudio para que cambie al modo oscuro o claro automáticamente según la hora del día</title>
      <link>https://bastianolea.rbind.io/blog/2025-01-12/</link>
      <pubDate>Sun, 12 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/2025-01-12/</guid>
      <description>&lt;div style = &#34;display: flex; justify-content: center; width: 100%; margin-bottom: 40px;&#34;&gt;&#xA;&lt;img style = &#34;width: 50%;&#34; src=&#34;https://bastianolea.rbind.io/blog/tema_morado/tema_oscuro.png&#34;&gt;&#xA;&lt;img style = &#34;width: 50%;&#34; src=&#34;https://bastianolea.rbind.io/blog/tema_morado/tema_claro.png&#34;&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;En la eterna batalla entre usuarios de tema oscuro y tema claro, yo lamentablemente soy del bando correcto: &lt;strong&gt;tema oscuro durante la noche, y tema claro durante el día.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;La idea de usar un tema oscuro en una pantalla no es que se vea más bonito y profesional todo de negro, sino ayudarte a &lt;strong&gt;reducir el contraste de la pantalla con respecto al espacio en el que estás trabajando.&lt;/strong&gt; En este sentido, si estás en un espacio bien iluminado, deberías usar un tema claro, para no forzar a vista a tener que adaptarse entre un entorno brillante y una pantalla oscura. Si estás en un espacio oscuro, o de iluminación baja, deberías usar un tema oscuro para adecuarte a la iluminación a tu alrededor, junto con ajustar el brillo de tu pantalla.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Haciendo que un loop muy largo termine sin cancelarlo</title>
      <link>https://bastianolea.rbind.io/blog/2024-12-26/</link>
      <pubDate>Thu, 26 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/2024-12-26/</guid>
      <description>&lt;p&gt;Me encuentro en la tarea de tener que &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/2024-12-20/&#34;&gt;procesar cientos de miles de datos&lt;/a&gt;, lo cual demorará varios cientos de horas, por lo que necesito que dejar mi computador trabajando durante las noches, por varios días. La idea es que, cada noche, el computador procese de la mayor cantidad de datos posibles, los resultados se guarden, y a la siguiente noche el proceso se repita con datos nuevos, hasta que en algunos días logre procesar todos los cientos de miles de datos que necesito.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crea tu propio asistente de programación en R con inteligencia artificial usando el paquete {pal}</title>
      <link>https://bastianolea.rbind.io/blog/pal_asistentes_llm/</link>
      <pubDate>Tue, 10 Dec 2024 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/pal_asistentes_llm/</guid>
      <description>&lt;div style=&#34;display: flex; align-items: center; gap: 15px; padding: 14px; &#xA;            background-color: #493365;&#xA;            border-radius: 6px;&#xA;            margin: 20px 40px 20px 40px;&#34;&gt;&#xA;  &#xA;  &lt;div style=&#34;flex-shrink: 0;&#34;&gt;&#xA;    &lt;i class=&#34;fas fa-triangle-exclamation&#34; style=&#34;font-size: 130%; margin-left: 2px; opacity: 1; color: #EAD2FA;&#34;&gt;&lt;/i&gt;&#xA;  &lt;/div&gt;&#xA;  &#xA;  &lt;aside style = &#34;font-size: 90%; color: #EAD2FA;&#34;&gt;&#xA;    ⚠️ este post está desactualizado, ya que &#xA;&lt;a href=&#34;https://bastianolea.rbind.io/blog/gander/&#34;&gt;es preferible usar el asistente &lt;code&gt;{gander}&lt;/code&gt;&lt;/a&gt;&#xA;  &lt;/aside&gt;&#xA;  &#xA;&lt;/div&gt;&#xA;&lt;p&gt;El paquete &#xA;&lt;a href=&#34;https://simonpcouch.github.io/pal/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;&lt;code&gt;{pal}&lt;/code&gt;&lt;/a&gt; te permite crear &lt;em&gt;asistentes&lt;/em&gt; para programar en R, potenciados por modelos de lenguaje (LLM). La utilidad de estos asistentes es que pueden ayudarte a realizar tareas rápidamente a partir de tu código de R, o incluso a partir de un texto que describa lo que quieres hacer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tips para limpieza de datos en R</title>
      <link>https://bastianolea.rbind.io/blog/limpieza_tips/</link>
      <pubDate>Wed, 13 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/limpieza_tips/</guid>
      <description>&lt;p&gt;En este post dejo algunos de los paquetes y funciones que uso frecuentemente al momento de limpiar datos en R. Voy a ir actualizando este post por si se me van ocurriendo más.&lt;/p&gt;&#xA;&lt;div style = &#34;max-width: 220px&#34;&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;janitor&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;stringr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dplyr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;lubridate&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;h3 id=&#34;limpiar-nombres-de-columnas&#34;&gt;Limpiar nombres de columnas&#xA;  &lt;a href=&#34;#limpiar-nombres-de-columnas&#34;&gt;&lt;svg class=&#34;anchor-symbol&#34; aria-hidden=&#34;true&#34; height=&#34;26&#34; width=&#34;26&#34; viewBox=&#34;0 0 22 22&#34; xmlns=&#34;http://www.w3.org/2000/svg&#34;&gt;&#xA;      &lt;path d=&#34;M0 0h24v24H0z&#34; fill=&#34;currentColor&#34;&gt;&lt;/path&gt;&#xA;      &lt;path d=&#34;M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76.0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71.0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71.0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76.0 5-2.24 5-5s-2.24-5-5-5z&#34;&gt;&lt;/path&gt;&#xA;    &lt;/svg&gt;&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;janitor&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;::&lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;clean_names&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Como su nombre lo indica, esta función cambia los nombres de las variables o columnas para estandarizar la forma en que están escritas: todo en minúsculas, sin espacios, sin símbolos, y las palabras separadas con guión bajo. Esto facilita mucho el trabajo con datos, ya que minimiza las probabilidades de qué te equivoques al escribir el nombre de una columna. Personalmente siempre ocupo esta función al momento de cargar datos, sobre todo si estos datos vienen desde Excel. Lo único malo de &lt;code&gt;clean_names()&lt;/code&gt; es que esta función también cambia las eñes por enes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Convertir un script de R con comentarios a un documento Quarto</title>
      <link>https://bastianolea.rbind.io/blog/convertr/</link>
      <pubDate>Sun, 10 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/convertr/</guid>
      <description>&lt;p&gt;Cuando trabajo con R, siempre intento dejar comentarios sobre de las cosas que estoy haciendo, tanto antes como después de cada bloque de código. Así, le hago un favor a mi &lt;em&gt;yo&lt;/em&gt; del futuro, dejando una cierta documentación de las cosas que estuve haciendo, los objetivos que tenía, y otras aclaraciones sobre los procesos realizados.&lt;/p&gt;&#xA;&lt;p&gt;A esta combinación de bloques de código y párrafos de textos se le llama &#xA;&lt;a href=&#34;https://es.wikipedia.org/wiki/Programaci%c3%b3n_literaria&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;programación literaria&lt;/a&gt;, o &lt;em&gt;literate programming.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Comparar el rendimiento expresiones en R</title>
      <link>https://bastianolea.rbind.io/blog/benchmark_ejemplo/</link>
      <pubDate>Tue, 05 Nov 2024 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/benchmark_ejemplo/</guid>
      <description>&lt;p&gt;Al programar algo, siempre existen varias formas de lograr un mismo objetivo. Un criterio para elegir una forma por sobre otra puede ser el rendimiento: si hay dos formas de hacer algo, elegir la forma que se ejecute más rápido.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Para comparar el rendimiento de distintas expresiones en R, realizamos un &lt;em&gt;benchmark,&lt;/em&gt; al cual le entregamos las expresiones que queremos comparar, y nos entregará un detalle de su velocidad de ejecución, consumo de memoria, y otros.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Evitar que un loop se detenga debido a errores</title>
      <link>https://bastianolea.rbind.io/blog/evitar_errores/</link>
      <pubDate>Fri, 13 Sep 2024 00:00:00 +0000</pubDate>
      <guid>https://bastianolea.rbind.io/blog/evitar_errores/</guid>
      <description>&lt;p&gt;Usando el paquete &lt;code&gt;{purrr}&lt;/code&gt; para realizar iteraciones o &lt;em&gt;loops&lt;/em&gt; en nuestro código, vamos a probar tres escenarios ante los que un loop se detendría debido a un error, y formas de solucionarlo.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-r&#34; data-lang=&#34;r&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nf&#34;&gt;library&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;purrr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;números&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;list&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;error&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;En el primer escenario, el loop intenta sumar &lt;code&gt;100&lt;/code&gt; a un vector de números, pero se encuentra con que uno de los números es un texto, por lo tanto la ejecución se detiene con un error:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
