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.
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.
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.
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.
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.
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.