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.