1. Prompt Detallado (Metodología RACE)

Este prompt está diseñado para guiar a una IA en la creación de un script de R para la limpieza de datos, siguiendo una estructura clara.

(R) Rol

Actúa como un Analista de Datos Senior especializado en el lenguaje de programación R y el ecosistema Tidyverse. Tu enfoque principal es la limpieza de datos (data wrangling) y la creación de scripts reproducibles, eficientes y fáciles de entender.

(A) Acción

Tu tarea es desarrollar un script completo en R que lea un archivo de texto con datos de ventas que está “sucio” y lo transforme en un data.frame limpio y listo para el análisis, llamado datos_final. El script debe abordar todos los problemas de formato, tipo de dato y consistencia presentes en el archivo original.

(C) Contexto

Se te proporciona el contenido exacto de un archivo de texto llamado datos_originales_sucios.txt. Este archivo contiene varias irregularidades que debes manejar programáticamente.

Contenido del archivo de texto (datos_originales_sucios.txt):

#-- INICIO DEL REPORTE DE VENTAS --#
#-- GENERADO: 2023-10-27 --#
ID_TRANSACCION|FECHA_OPERACION|PRODUCTO|CANTIDAD|PRECIO_UNITARIO_EUR
id_001; 21/10/2023 ; Producto A; 5; 1.250,50
id_002; 2023-10-22; Producto B ; 2; 99,90
id_003; Oct 23, 2023; producto_a; NA; 1250,50
id_004; 24-10-2023; Producto C; 10; --
id_005; 2023-10-25; PRODUCTO B ; 3 ; 99,9
#-- FIN DEL REPORTE --#
id_006; 26/10/2023; Producto D; 1; 500,00

Desafíos específicos a resolver en el script: 1. Metadatos y Comentarios: El archivo contiene líneas al inicio y en medio que no son datos (#-- ... --#) y deben ser ignoradas. 2. Separadores Inconsistentes: La línea de encabezado usa una barra vertical (|) como separador, mientras que las líneas de datos usan punto y coma (;). 3. Espacios Irregulares: Existen espacios en blanco inconsistentes alrededor de los separadores. 4. Formatos de Fecha Múltiples: La columna de fechas contiene formatos como dd/mm/yyyy, yyyy-mm-dd y Mes día, año. 5. Inconsistencia Textual: La columna de producto tiene variaciones en mayúsculas/minúsculas y uso de guiones bajos. 6. Valores Faltantes Mixtos: Los datos faltantes se representan como NA y también como --. 7. Formato Numérico Incorrecto: Las columnas numéricas usan . como separador de miles y , como separador decimal.

(E) Expectativa

Espero un único bloque de código en R que sea completo y ejecutable. El script debe: 1. Usar librerías del Tidyverse: Principalmente readr, dplyr, stringr y lubridate. 2. Cargar los datos eficientemente: La estrategia preferida es leer primero las líneas del archivo, unificar el separador a punto y coma (;) y luego usar una función de lectura con header = TRUE. 3. Producir un data.frame final llamado datos_final con las columnas limpias y los tipos de datos correctos (Date, numeric, etc.). 4. Ser legible y estar bien comentado: Explica los pasos clave del proceso de carga y limpieza.

2. Prompt Sintético

Esta es una versión resumida del prompt anterior, ideal para una interacción más rápida.

Escribe un script completo en R usando el Tidyverse para procesar los siguientes datos de texto y crear un data.frame limpio llamado datos_final.

Datos de entrada:

#-- INICIO DEL REPORTE DE VENTAS --#
#-- GENERADO: 2023-10-27 --#
ID_TRANSACCION|FECHA_OPERACION|PRODUCTO|CANTIDAD|PRECIO_UNITARIO_EUR
id_001; 21/10/2023 ; Producto A; 5; 1.250,50
id_002; 2023-10-22; Producto B ; 2; 99,90
id_003; Oct 23, 2023; producto_a; NA; 1250,50
id_004; 24-10-2023; Producto C; 10; --
id_005; 2023-10-25; PRODUCTO B ; 3 ; 99,9
#-- FIN DEL REPORTE --#
id_006; 26/10/2023; Producto D; 1; 500,00

Requisitos del script: 1. Carga: Ignora las líneas de comentario (#--). Unifica los separadores (| y ;) a ; antes de leer los datos. 2. Limpieza: Transforma las columnas para que el data.frame final (datos_final) tenga la siguiente estructura: * FECHA_OPERACION: Tipo Date. * PRODUCTO: character, estandarizado a “Title Case” y sin guiones bajos. * CANTIDAD: numeric. * PRECIO_UNITARIO_EUR: numeric, usando . como separador decimal. 3. Salida: Al final, imprime el data.frame datos_final y su estructura con str().

```

Al hacer “Knit” a este nuevo script, verás que aparece un índice a la izquierda con las secciones “1. Prompt Detallado” y “2. Prompt Sintético”, y la primera tendrá sub-entradas para cada parte de la metodología RACE, haciéndolo mucho más fácil de navegar.