La Importancia de la Precisión en los DNI en Bases de Datos
Descubre cómo evitar la pérdida de ceros en los números de DNI al exportar datos a Excel y mantener la precisión en tus bases de datos.
TUTORIALESSOFTWARE REXCELGOBIERNO DE DATOS
Introducción a la Precisión y Formato en Bases de Datos
El manejo adecuado de los formatos y la precisión en las bases de datos es crucial para evitar errores en la administración de información. Un caso particular que merece atención es el de los DNI (documentos nacionales de identidad) y otros números de identificación que pueden perder su formato original al ser exportados a programas como Excel. Este problema es más común de lo que parece, y puede tener consecuencias importantes.
El Problema de los Ceros a la Izquierda
Un aspecto crítico en el manejo de números de identificación, como el DNI en Perú, es la preservación de ceros a la izquierda. Por ejemplo, un DNI como '01888882' puede verse modificado a '1888882' al exportarse a un archivo Excel, donde la configuración predeterminada puede interpretar el número como un entero y omitir el cero inicial. Este cambio aparentemente menor puede ocasionar problemas significativos en la integración y validación de datos.
Implicancias en el Manejo de Datos
Cuando realizamos cruces entre tablas para verificar la información, la falta del cero en registros con formato similar (pero incorrecto) puede resultar en errores de correlación. Esto puede originar fallos en sistemas de identificación, desafíos en auditorías de datos y dificultades en la gestión administrativa. La importancia de mantener la precisión en los dígitos es fundamental para asegurar integridad en los datos y en los sistemas que dependen de ellos.
Soluciones para Evitar Pérdidas de Formato
Existen varias estrategias para evitar esta problemática. Una opción es definir explícitamente el formato de las celdas en Excel antes de importar los datos, configurándolas como texto en lugar de números. Otra técnica es usar una máscara de entrada en las aplicaciones que administran la base de datos, asegurando que los ceros iniciales se mantengan. También es posible emplear scripts o macros que reformatén los datos al momento de la exportación o importación.
Breve ejemplo en R
library(gsheet)
link = "https://docs.google.com/spreadsheets/d/1ElqLIY-de0G4d8HwIir7FAwZiZ1dJXgOP9nBdL_DvMo/edit?usp=sharing"
datos = gsheet2tbl(link)
datos


Ahora usaremos este sencillo código, donde el número, indica la cantidad de dígitos a considerar para el texto, en nuestro caso 8
library(tidyverse)
datos %>% mutate(Documento = sprintf("%08d", Documento))
El resultado de nuestro proceso se observa a continuación:
Observamos como se corrigió la falta de ceros a la izquierda del documento.


# CÓDIGO R
# Correción DNIS
library(gsheet)
link = "https://docs.google.com/spreadsheets/d/1ElqLIY-de0G4d8HwIir7FAwZiZ1dJXgOP9nBdL_DvMo/edit?usp=sharing"
# Forma 1
datos = gsheet2tbl(link)
datos
datos$Documento = sprintf("%08d", datos$Documento)
datos
# Forma 2
library(tidyverse)
library(gsheet)
datos = gsheet2tbl(link)
datos = datos %>% mutate(Documento = sprintf("%08d", Documento))
datos