Crea la carpeta de un proyecto (ver dl_proyecto()) con lo que hay que llenar: la configuración comentada, las
plantillas de las tablas del contrato de insumos (dl_tablas), las carpetas de las descargas y un LEEME.md con
los pasos. No sobrescribe nada: un archivo que ya existe queda como está.
Arguments
- carpeta
Carpeta del proyecto; se crea si no existe.
- causa
Identificador de la causa: un número entero (el
cause_idde GBD si la causa existe en GBD).- nombre
Nombre de la causa (opcional; sin él, la configuración toma el de la descarga del ancla).
- anio
Año que se estima (opcional aquí; la configuración lo exige).
- edad_inicio
Primera edad del modelo, en años (opcional aquí; la configuración la exige).
Value
La ruta de carpeta, invisible. Un mensaje lista lo que se creó, lo que ya existía y los pasos
siguientes.
Details
Lo que se crea en carpeta:
config.yaml(oconfig/<causa>.yaml, si el proyecto ya tiene la carpetaconfig/de un proyecto con varias causas): cada clave de la configuración con qué es, su símbolo en el modelo y su valor por defecto (la tabla dedl_configuracion()). Las claves obligatorias (causa,anio,edad_inicio) van sin comentar, con el valor dado o vacías;nombre, si se da, también. Las demás van comentadas con su valor por defecto o, si no tienen un valor fijo, con un ejemplo. Para usar otro valor se quita el#de la línea (y el de su bloque, comoancla:paraancla.peso).ubicaciones.csv,poblacion.csv,betas.csv,datos.csv,severidad.csv,poblacion_detalle.csv,proxies_crudos.csv,razones.csvyprior_mortalidad_exceso.csv, con solo el encabezado (las columnas dedl_plantilla()). Una tabla con solo el encabezado es como si no estuviera: las opcionales que no se llenan no se usan.ancla/,covariables/yfuentes_gbd/, vacías: ahí van las descargas de GBD Results y del GHDx, sin editar (o las tablas del contrato).LEEME.md: la carpeta del proyecto, los pasos, de dónde se descarga cada archivo y cómo revisar y correr el proyecto.
Después: llenar las tablas, revisar el proyecto con dl_revisar_proyecto() y correrlo con dl_correr(). Los
valores de nombre, anio y edad_inicio van a la configuración tal como se dan: la revisión dice si alguno no
vale.
Un proyecto de una sola causa tiene config.yaml. Para agregar otra causa, crea la carpeta config/, mueve ahí
la configuración como config/<causa>.yaml y vuelve a llamar a dl_nuevo_proyecto() con la causa nueva: escribe
config/<causa nueva>.yaml y deja lo demás como está. Las tablas son las mismas para todas las causas: sus filas
dicen de qué causa son en la columna causa.
See also
dl_tablas (las tablas y sus columnas), dl_proyecto() (la carpeta), dl_configuracion() (las claves
de la configuración), dl_revisar_proyecto() y dl_correr() (los pasos siguientes) y dl_ejemplo() (un
proyecto lleno, para comparar).
Funciones del proyecto:
dl_calibrar_proxies(),
dl_correr(),
dl_ejemplo(),
dl_plantilla(),
dl_proyecto(),
dl_revisar_proyecto(),
dl_tabla(),
dl_tablas
Examples
carpeta <- file.path(tempdir(), "proyecto_nuevo")
dl_nuevo_proyecto(carpeta, causa = 1234, nombre = "Enfermedad de ejemplo",
anio = 2023, edad_inicio = 30)
#> dl_nuevo_proyecto(): proyecto de la causa 1234 en /tmp/RtmpucVo2P/proyecto_nuevo
#> archivos nuevos: LEEME.md, betas.csv, config.yaml, datos.csv, poblacion.csv, poblacion_detalle.csv, prior_mortalidad_exceso.csv, proxies_crudos.csv, razones.csv, severidad.csv, ubicaciones.csv
#> ya existían (no se tocaron): ninguno
#> siguientes pasos: lee LEEME.md, completa config.yaml, llena las tablas, pon las descargas en ancla/ (y en covariables/) y revisa el proyecto con dl_revisar_proyecto()
list.files(carpeta, recursive = TRUE, include.dirs = TRUE)
#> [1] "LEEME.md" "ancla"
#> [3] "betas.csv" "config.yaml"
#> [5] "covariables" "datos.csv"
#> [7] "fuentes_gbd" "poblacion.csv"
#> [9] "poblacion_detalle.csv" "prior_mortalidad_exceso.csv"
#> [11] "proxies_crudos.csv" "razones.csv"
#> [13] "severidad.csv" "ubicaciones.csv"
cat(readLines(file.path(carpeta, "config.yaml"), n = 20, encoding = "UTF-8"), sep = "\n")
#> # Configuración de una causa de un proyecto de dismodlite (la escribió dl_nuevo_proyecto()).
#> # Cada clave va con qué es, su símbolo en el modelo y su valor por defecto:
#> # - las obligatorias van sin «#»: completa las que están vacías;
#> # - las demás están comentadas con su valor por defecto o, si no tienen un valor fijo, con un
#> # ejemplo. Para usar otro valor, quita el «# » de su línea (y el de su
#> # bloque, como `ancla:` para ancla.peso), deja la sangría de dos espacios y escribe el valor.
#> # Referencia de las claves: ?dl_configuracion. Para revisar el proyecto: dl_revisar_proyecto().
#>
#> # `causa`: Identificador de la causa: un entero (el cause_id de GBD si la causa existe en GBD). Obligatoria;
#> # por ejemplo 1234.
#> causa: 1234
#>
#> # `nombre`: Nombre de la causa que muestra print() del proyecto y que llevan las etiquetas en español del
#> # proyecto; las tablas de la corrida y su manifiesto llevan el cause_name del ancla. Por defecto, el
#> # cause_name de la descarga del ancla.
#> nombre: Enfermedad de ejemplo
#>
#> # `anio`: Año que se estima. Obligatoria; por ejemplo 2023.
#> anio: 2023
#>
# la revisión dice qué falta: las tablas obligatorias
dl_revisar_proyecto(carpeta)
#> Revisión del proyecto «proyecto_nuevo», causa 1234
#> ✗ ubicaciones: falta la tabla (o solo trae el encabezado): va en ubicaciones.csv o en la carpeta ubicaciones/ del proyecto
#> → columnas ubicacion, nombre, padre (ver ?dl_tablas)
#> ✗ poblacion: falta la tabla (o solo trae el encabezado): va en poblacion.csv o en la carpeta poblacion/ del proyecto
#> → columnas ubicacion, anio, sexo, edad_inicio, edad_fin, poblacion (ver ?dl_tablas)
#> ✗ ancla: falta la tabla (o solo trae el encabezado): va en ancla.csv o en la carpeta ancla/ del proyecto
#> → columnas causa, anio, sexo, edad_inicio, edad_fin, medida, valor, inferior, superior (ver ?dl_tablas)
#> - configuración: su traducción espera a la tabla ubicaciones
#> - proyecto: las reglas entre tablas esperan a que se corrijan los errores de arriba
#> - insumos: no se armaron: primero corrige los errores de arriba
#> 3 error(es) y 0 aviso(s): corrige los errores y vuelve a revisar.
unlink(carpeta, recursive = TRUE)