Skip to contents

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, ...).

Value

datos, invisible, si la tabla es válida; si no, un error con la lista de problemas.

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