lupa
Código:README.es.md
lupa es un conjunto de herramientas auditables para perfilar datos tabulares, definir qué significa calidad para un uso concreto, medirla, limpiar una copia sin cambiar la entrada en silencio y encontrar duplicados aproximados a escala. Cada resultado declara su alcance, evidencia e incertidumbre.
La API pública, la ayuda y las viñetas están en español. Los nombres son estables y se pueden copiar de esta guía; el README en inglés cuenta lo mismo para lectores que prefieren ese idioma.
🌎 Idioma de la API
Los nombres públicos son españoles tanto en los ejemplos como en la ayuda:
| API en español | Significado en inglés |
|---|---|
perfilar() |
profile |
analizar() |
analyse |
marco_calidad() |
quality framework |
planificar_limpieza() |
plan a cleanup |
guiar_limpieza() |
guide a cleanup |
aplicar() |
apply a selected cleanup |
medir() / evaluar()
|
measure / evaluate |
detectar_duplicados_aproximados() |
find approximate duplicates |
reportar() |
create a report |
✨ Qué hace lupa
- Perfila una entrega y muestra faltantes, tipos, patrones, fechas y evidencia de datos personales.
- Encuentra claves, relaciones, dependencias y granularidades de medición que nunca fueron declaradas.
- Permite que cada proyecto defina su marco de calidad, sin imponer un puntaje global.
- Mide y evalúa métricas, escalas, reglas de validez y dominios referenciales explícitos.
- Produce planes de limpieza editables, aplica sólo acciones elegidas sobre una copia y conserva un registro de auditoría.
- Encuentra duplicados aproximados con teselas exactas, MinHash/LSH determinista, bloqueo, estimación previa del costo y lotes en disco.
- Repara codificación dañada en R, incluido mojibake repetido y CESU-8, y rechaza conversiones con pérdida inseguras.
- Sigue la calidad en el tiempo y crea informes HTML autocontenidos.
📦 Instalación
Hasta la primera publicación en CRAN, instalá la versión de desarrollo directamente desde GitHub:
# install.packages("pak")
pak::pak("sebollin/lupa")Para un clon local o un tarball de la versión publicada, usá:
R CMD build .
R CMD INSTALL lupa_0.1.0.tar.gzTambién se puede instalar un tarball local desde R:
install.packages("lupa_0.1.0.tar.gz", repos = NULL)⚡ Inicio en cinco minutos
library(lupa)
data(datos_operativos)
perfil <- perfilar(datos_operativos, analizar_dependencias = FALSE)
head(perfil$hallazgos[, c("columna", "tipo_hallazgo", "severidad")], 5)
analisis <- analizar(datos_operativos)
archivo <- tempfile(fileext = ".html")
reportar(analisis, archivo = archivo)
stopifnot(file.exists(archivo))
unlink(archivo)El perfilado es de sólo lectura: nunca cambia la tabla de entrada. Los hallazgos son data frames inspeccionables y la evidencia de datos personales se enmascara cuando la clasificación lo justifica. Abajo se ve una salida real de consola.

Salida capturada de perfilar()
🧭 Qué se puede hacer con lupa
La referencia de pkgdown y las viñetas enlazadas son el manual detallado. Esta tabla es el mapa breve:
library(lupa)
data(datos_operativos)
marco <- marco_calidad(
"Marco operativo",
list(Estructura = c("Ausencias observadas", "Duplicacion exacta"))
)
propuesta <- proponer_modelo(perfilar(datos_operativos,
analizar_dependencias = FALSE))
list(marco = marco, propuesta = propuesta)La API tiene algunos límites importantes. No hay un puntaje global: las dimensiones, unidades y reglas permanecen visibles. El núcleo es universal y los catálogos son enchufables; AGESIC v1.6 es una implementación de referencia, no un límite nacional. El paquete tiene un solo import obligatorio, cli; stringdist es opcional.
🔍 Dónde se ubica
skimr y DataExplorer exploran; pointblank, validate y dataquieR expresan o evalúan reglas; zoomerjoin, textreuse y reclin2 se enfocan en comparar texto o enlazar registros. calidad, mantenido por Klaus Lehmann y Ricardo Pizarro, es un eje complementario: evalúa la calidad de estimaciones de encuestas, mientras lupa evalúa los datos tabulares que producen una estimación.
La reparación de codificación sigue en R el enfoque y los datos congelados de ftfy 6.3.1, de Robyn Speer. Incluye once tablas de bytes, CESU-8, el caso Java C0 80 y cinco extensiones deliberadas documentadas en NEWS. Reproduce 159 de los 161 casos del corpus distribuido y deja intactos los 31 casos negativos. Deliberadamente no ofrece los pasos de estilo de fix_text de ftfy, como deshacer HTML, curvar comillas, normalizar ancho o normalizar Unicode: cambiar datos legítimos en silencio no es reparar.
📖 Cita y referencias
citation("lupa")Las referencias conceptuales son Batini y Scannapieco (2016), el Marco de trabajo de AGESIC para la Gestión de la Calidad de Datos en Gobierno Digital v1.6 y ISO/IEC 25012:2008.
🤝 Contribuir y reportar
Usá el issue tracker para errores, propuestas y correcciones de documentación. Los contratos estables son las unidades declaradas, el alcance, la protección y el registro de auditoría; los detalles de implementación y los tiempos de benchmark pueden cambiar entre versiones mientras esos contratos sigan siendo ciertos.
📄 Licencia
lupa se distribuye bajo la GPL-3. Consultá LICENSE.note por los datos Apache-2.0 derivados de ftfy y los datos MIT derivados de naniar.