Skip to contents

Comprueba las celdas de salida contra el contrato estimates/v1 antes de escribirlas: columnas y orden, clave única, intervalos ordenados, identificador de corrida y nombres coherentes con los catálogos.

Usage

dl_validar_estimaciones(datos, rutas = dl_rutas(), entidad = "cause")

Arguments

datos

Tabla de celdas (data.table, con las columnas del contrato estimates/v1).

rutas

Rutas de dl_rutas(); se usan los catálogos.

entidad

Entidad del contrato ("cause").

Value

TRUE, invisible, si las celdas son válidas; si no, un error con la lista de fallas.

Details

Las comprobaciones: las columnas exactas y en su orden (las de las celdas de dl_resumir() con run_id primero); una sola fila por ubicación, año, banda, sexo, causa, medida y métrica; sin NA en la clave ni en los valores; lower <= val <= upper; ui_level 0.95; un solo run_id, con la forma <AAAA-MM-DD>_<nombre>_v<n>; y los nombres de edad, sexo, medida, métrica, ubicación y causa iguales a los de los catálogos (sin distinguir mayúsculas; la causa, por su forma sin tildes ni espacios). dl_exportar_corrida(), dl_sumar_hijas(), dl_reresumir_corrida() y dl_consolidar() la usan antes de escribir.

Examples

# \donttest{
p <- dl_proyecto(dl_ejemplo(), causa = 9100)
b <- dl_insumos(p)
#> 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
op <- dl_opciones_mcmc(simulaciones = 100, cadenas = 2, iteraciones = 2000, calentamiento = 1000)
f <- dl_ajustar(b, op, semilla = 1)
res <- dl_resumir(list(ajuste = f, avd = dl_avd(f, b, semilla = 1), insumos = b))
# las celdas con el identificador de una corrida
celdas <- data.table::data.table(run_id = paste0(Sys.Date(), "_ejemplo_v1"), res$celdas)
isTRUE(dl_validar_estimaciones(celdas, rutas = p$rutas))
#> [1] TRUE
# un intervalo que no contiene su valor no cumple el contrato
celdas$lower[1] <- celdas$val[1] * 2
try(dl_validar_estimaciones(celdas, rutas = p$rutas))
#> Error : dl_validar_estimaciones(): las celdas no cumplen el contrato estimates/v1:
#>   - 1 fila(s) no cumplen lower <= val <= upper
# }