Saltar al contenido
← Sesión 19

Ficha · Sesión 19 · Módulo IV, Los datos

«De la pregunta a la herramienta»

¿Cómo se limpian los datos sin que la limpieza se vuelva una decisión invisible?

Con un script que parte de los datos crudos, se puede volver a correr y queda en git. Cada regla de limpieza es una decisión de análisis escrita, y se comprueba comparando el antes y el después.

Limpiar datos con un agente

El oficio que ya tienes

Documentar la limpieza. Quien ha preparado una base para análisis sabe que recodificar es decidir, y que una decisión sin nota se olvida en una semana. Un script es esa nota, con la ventaja de que además se ejecuta y da siempre el mismo resultado.

En Marienthal

En el cuestionario de clase, «CDMX», «Ciudad de México» y «cdmx» se vuelven una sola categoría con una regla en limpieza.sql. Las horas en blanco quedan como NULL y se cuentan aparte, y un día con más de 24 horas declaradas se marca para revisarlo, no se borra en silencio. El conteo por entidad antes y después muestra que no se perdió ninguna respuesta.

En tu proyecto

Cuenta los faltantes y las variantes de cada categoría en las respuestas de tu prueba piloto. Escribe con el agente tu limpieza.sql, córrelo desde una copia de los crudos, compara el antes y el después y guarda el script en git.

Conceptos

Datos crudos
Los datos tal como llegaron del instrumento. Se guardan sin cambios para poder volver a ellos.
Valor faltante
Una respuesta que no está. Puede significar que no aplicaba, que no se respondió o que se perdió, y cada caso se trata distinto.
Recodificar
Cambiar los valores de una variable según una regla, como juntar tres formas de escribir lo mismo en una sola categoría.
Script de limpieza
Un archivo con todas las reglas de limpieza en orden. Correrlo otra vez sobre los mismos crudos da el mismo resultado.

Instrumental

sqlite3 encuesta.db ".backup crudos.db"
Copia en caliente de la base, aunque el cuestionario siga recibiendo respuestas.
SELECT entidad, COUNT(*) FROM respuestas GROUP BY entidad;
Ver cada forma en que se escribió una categoría y cuántas veces aparece.
SELECT COUNT(*) FROM respuestas WHERE horas_no_remuneradas IS NULL;
Contar los faltantes. Se escribe IS NULL: la comparación = NULL nunca es verdadera.
cp crudos.db limpia.db && sqlite3 limpia.db < limpieza.sql
Producir la versión limpia desde los crudos, cada vez que haga falta.
git diff limpieza.sql
Leer qué reglas cambió el agente antes de aceptarlas.

Para tu bitácora

¿Qué regla de tu limpieza cambia una respuesta de forma que la persona que respondió podría no reconocer?

viridiana.dev · Viridiana