Comprueba columnas, tipos, valores permitidos, clave única y las reglas que el esquema declara para la tabla.
Los problemas se reportan todos juntos, cada uno con tabla.columna.
Usage
dl_validar_tabla(datos, tabla, esquema = dl_esquema(), contexto = list())Arguments
- datos
Tabla (data.frame o data.table) a validar; se convierte a data.table por referencia.
- tabla
Nombre de la tabla en el esquema (por ejemplo
"datos").- esquema
Esquema devuelto por
dl_esquema().- contexto
Lista con la información que usan las reglas que cruzan tablas (población, betas, ...).
Details
dl_insumos() valida así cada tabla de los insumos, con el contexto completo. Llamada directamente, sirve para
revisar una tabla del formato completo antes de armar los insumos. Las reglas que cruzan tablas (por ejemplo, que
la población nacional sea la suma de la subnacional) usan la información de contexto: sin ella, algunas no se
comprueban, otras lo reportan como un problema y la de las ubicaciones supone las de la versión 0.2.2 (la
ubicación nacional 123 y códigos subnacionales de dos dígitos). En un proyecto, dl_tabla() revisa cada tabla del
contrato de insumos y dl_revisar_proyecto(), todo el proyecto en palabras de sus tablas.
Examples
b <- dl_insumos(dl_proyecto(dl_ejemplo(), causa = 9100))
#> dl_insumos(): 25 fila(s) nacionales de la tabla datos quedan fuera del ajuste porque datos_en_ajuste está vacío en la configuración; las filas subnacionales se usan solo para validar la cascada
# la tabla de datos de los insumos es válida: sin error (devuelve la tabla, invisible)
dl_validar_tabla(b$datos, "datos")
# un dato marcado para excluir sin su motivo no lo es
malos <- b$datos[1:3]
malos$outlier[1] <- TRUE
try(dl_validar_tabla(malos, "datos"))
#> Error : dl_validar_tabla(): la tabla datos tiene 1 problema(s):
#> - datos: outlier_con_motivo — un dato marcado para excluir exige su motivo: fila_26