Toma la corrida vigente de cada causa y año del registro, arma la tabla canónica (tasas y conteos), la valida y
la escribe en <carpeta>/mod/consolidado/<AAAA-MM-DD>_<nombre>_v<n>/: canonico/ (la tabla canónica por
medida), tablas/ (una tabla por medida con la forma que declara el perfil de columnas) y manifest.yaml.
El consolidado se agrega al registro de corridas solo si se da registro_salida.
Usage
dl_consolidar(
registro,
carpeta,
perfil,
maestro,
rutas = dl_rutas(),
causas = NULL,
anios = NULL,
permitir_huecos = FALSE,
registrar = !is.null(registro_salida),
nombre = "consolidado",
registro_salida = NULL,
carpeta_corridas = carpeta,
nombres_nivel4 = file.path(dirname(maestro), "causas_nivel4_es.csv"),
ajuste_directo = integer()
)Arguments
- registro
Archivo YAML del registro de corridas.
- carpeta
Carpeta raíz donde se escribe el consolidado.
- perfil
Archivo YAML del perfil de columnas; el paquete trae
system.file("perfiles", "perfil_v1.yaml", package = "dismodlite")yperfil_v2.yaml(verdl_perfil_cargar()).- maestro
Archivo
master_gbd.csvcon los nombres en español de las causas. Debe ser el derutas(elmaster_gbd.csvde la carpetaregistrodedl_rutas()), con el que se comprueban las sumas de hijas.- rutas
Rutas de
dl_rutas(); se usan el registro (la carpeta de tablas de referencia conmaster_gbd.csvyetiquetas_es.csv, no el registro de corridas) y los catálogos. Hay que darlas (por ejemplodl_rutas_ejemplo(9100)con los datos de ejemplo).- causas, anios
Causas y años a consolidar (
NULL: todos los del registro).- permitir_huecos
TRUEacepta pares (causa, año) sin corrida y los declara en el manifiesto.- registrar
TRUEagrega el consolidado al registroregistro_salida.- nombre
Nombre corto del consolidado: minúsculas sin tildes, números y guiones.
- registro_salida
Archivo YAML del registro donde se anota el consolidado (opcional).
- carpeta_corridas
Carpeta raíz donde están las corridas (por defecto,
carpeta).- nombres_nivel4
Archivo con los nombres en español de las causas de nivel 4 (opcional).
- ajuste_directo
Causas con hijas en
master_gbd.csvque se consolidan desde su propio ajuste y no desde la suma de sus hijas: un vector decause_id(por defecto, ninguna).
Value
Objeto de clase dl_run del consolidado, con run_id, dir (su carpeta), manifest (el contenido de
manifest.yaml) y files (las tablas de canonico/, con su ruta, su sha256 y su número de filas).
Details
Los pasos, que también son funciones: dl_consolidado_seleccionar() (la corrida vigente de cada causa y año),
dl_consolidado_canonico() (las celdas apiladas), dl_consolidado_conteos() (los conteos), la validación contra
el contrato estimates/v1 (dl_validar_estimaciones()) y dl_perfil_proyectar() (las tablas del perfil). Todo se
valida en memoria antes de escribir, y la escritura va a una carpeta temporal que se renombra al final. El
manifiesto declara el perfil (con su sha256), la procedencia de la población, un bloque por causa y año (la
corrida de origen, si es una suma, sus compuertas) y las limitaciones del consolidado.
La incidencia de una causa cuya configuración dice exportar: {incidencia: no} (ver dl_configuracion()) no entra:
sus tablas de prevalencia y de AVD sí. El bloque de esa causa lleva incidencia_exportada: false y las limitaciones
la nombran; la corrida conserva su incidencia.
Una causa que el maestro declara con hijas debe venir de su suma (dl_sumar_hijas()). Si se modeló entera, con
un ajuste propio, se nombra en ajuste_directo y se consolida desde ese ajuste: su bloque lleva
ajuste_directo: true y las limitaciones lo dicen (ver dl_consolidado_seleccionar()).
Usa el registro de corridas y la carpeta del registro de causas (master_gbd.csv y etiquetas_es.csv): la de un
proyecto la arma dl_proyecto() (dl_proyecto(...)$rutas$registry); la de un proyecto en el formato completo es
su carpeta registro.
See also
dl_sumar_hijas() (las sumas que exige), dl_exportar_corrida() (su argumento registro) y
dl_perfil_cargar() (los perfiles de columnas).
Consolidado:
dl_consolidado_canonico(),
dl_consolidado_conteos(),
dl_consolidado_seleccionar(),
dl_perfil_cargar(),
dl_perfil_proyectar()
Examples
# \donttest{
# una corrida de prueba de la causa 9101 del ejemplo (formato completo), anotada en un
# registro de corridas nuevo
completo <- system.file("extdata", "acs_peru_completo", package = "dismodlite")
salida <- file.path(tempdir(), "consolidado")
dir.create(salida)
registro <- file.path(salida, "registro_corridas.yaml")
writeLines("datasets: []", registro)
run <- suppressMessages(dl_correr(completo, causa = 9101, semilla = 1, rapido = TRUE,
sensibilidad = FALSE, carpeta_salida = salida,
registro = registro))
rutas <- dl_rutas_ejemplo(9101, formato = "completo")
perfil <- system.file("perfiles", "perfil_v2.yaml", package = "dismodlite")
maestro <- file.path(completo, "registro", "master_gbd.csv")
# el consolidado en una llamada
cons <- dl_consolidar(registro, salida, perfil = perfil, maestro = maestro, rutas = rutas)
cons
#> <dl_run> corrida 2026-10-15_consolidado_v1 (consolidado)
#> carpeta: /tmp/RtmpucVo2P/consolidado/mod/consolidado/2026-10-15_consolidado_v1
#> 3 particiones canónicas (una por medida)
list.files(cons$dir, recursive = TRUE)
#> [1] "canonico/cause/incidence/2026-10-15_consolidado_v1.csv"
#> [2] "canonico/cause/prevalence/2026-10-15_consolidado_v1.csv"
#> [3] "canonico/cause/yld/2026-10-15_consolidado_v1.csv"
#> [4] "manifest.yaml"
#> [5] "tablas/avd.csv"
#> [6] "tablas/incidencia.csv"
#> [7] "tablas/prevalencia.csv"
# los códigos de ubicación se leen como texto, para conservar el cero inicial
prev <- read.csv(file.path(cons$dir, "tablas", "prevalencia.csv"),
colClasses = c(ubigeo = "character"), fileEncoding = "UTF-8")
head(prev)
#> causa_gbd_id causa_gbd anio ubigeo departamento nivel
#> 1 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> 2 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> 3 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> 4 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> 5 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> 6 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> edad_id edad sexo_id medida metrica valor inferior superior
#> 1 13 40 a 44 años 1 Prevalencia Número 110.8230 81.84509 150.4040
#> 2 14 45 a 49 años 1 Prevalencia Número 138.6010 109.68422 172.3718
#> 3 15 50 a 54 años 1 Prevalencia Número 158.6720 125.90102 197.7501
#> 4 16 55 a 59 años 1 Prevalencia Número 174.0130 139.33666 218.3846
#> 5 17 60 a 64 años 1 Prevalencia Número 181.7774 145.26571 221.6574
#> 6 18 65 a 69 años 1 Prevalencia Número 187.6810 148.79377 229.7768
#> run_origen
#> 1 2026-10-15_causa-9101-prueba_v1
#> 2 2026-10-15_causa-9101-prueba_v1
#> 3 2026-10-15_causa-9101-prueba_v1
#> 4 2026-10-15_causa-9101-prueba_v1
#> 5 2026-10-15_causa-9101-prueba_v1
#> 6 2026-10-15_causa-9101-prueba_v1
# los mismos pasos, uno por uno
sel <- dl_consolidado_seleccionar(registro, salida, rutas = rutas)
sel[, c("cause_id", "year", "run_id", "agregacion")]
#> cause_id year run_id agregacion
#> <int> <int> <char> <char>
#> 1: 9101 2023 2026-10-15_causa-9101-prueba_v1 <NA>
canonica <- dl_consolidado_canonico(sel, paste0(Sys.Date(), "_consolidado_v1"))
table(canonica$measure_name, canonica$metric_name)
#>
#> Percent Rate
#> Incidence 0 468
#> Prevalence 468 0
#> YLDs (Years Lived with Disability) 0 468
celdas <- dl_consolidado_conteos(canonica, sel)
attr(celdas, "poblacion_acquisition_id")
#> [1] "sintetico_poblacion_v1"
# los nombres en español de la causa (las de nivel 4, como 9101, en causas_nivel4_es.csv)
master <- read.csv(file.path(completo, "registro", "causas_nivel4_es.csv"), fileEncoding = "UTF-8")
etiquetas <- read.csv(file.path(completo, "registro", "etiquetas_es.csv"),
colClasses = "character", fileEncoding = "UTF-8")
tablas <- dl_perfil_proyectar(celdas, dl_perfil_cargar(perfil), master, etiquetas)
names(tablas)
#> [1] "prevalence" "incidence" "yld"
head(tablas$prevalence)
#> causa_gbd_id causa_gbd anio ubigeo departamento nivel
#> <int> <char> <int> <char> <char> <int>
#> 1: 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> 2: 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> 3: 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> 4: 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> 5: 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> 6: 9101 ACS de miembros inferiores 2023 01 Amazonas 1
#> edad_id edad sexo_id medida metrica valor inferior superior
#> <int> <char> <int> <char> <char> <num> <num> <num>
#> 1: 13 40 a 44 años 1 Prevalencia Número 110.8230 81.84509 150.4040
#> 2: 14 45 a 49 años 1 Prevalencia Número 138.6010 109.68422 172.3718
#> 3: 15 50 a 54 años 1 Prevalencia Número 158.6720 125.90102 197.7501
#> 4: 16 55 a 59 años 1 Prevalencia Número 174.0130 139.33666 218.3846
#> 5: 17 60 a 64 años 1 Prevalencia Número 181.7774 145.26571 221.6574
#> 6: 18 65 a 69 años 1 Prevalencia Número 187.6810 148.79377 229.7768
#> run_origen
#> <char>
#> 1: 2026-10-15_causa-9101-prueba_v1
#> 2: 2026-10-15_causa-9101-prueba_v1
#> 3: 2026-10-15_causa-9101-prueba_v1
#> 4: 2026-10-15_causa-9101-prueba_v1
#> 5: 2026-10-15_causa-9101-prueba_v1
#> 6: 2026-10-15_causa-9101-prueba_v1
unlink(salida, recursive = TRUE)
# }