Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev feat: added types table of cases #110

Merged
merged 10 commits into from
Mar 7, 2024
Merged
3 changes: 2 additions & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ Imports:
sysfonts,
showtext,
cowplot,
gridExtra
gridExtra,
kableExtra
Suggests:
knitr,
rmarkdown
Expand Down
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Generated by roxygen2: do not edit by hand

export(agrupar_area_geo)
export(agrupar_casos_eventos)
export(agrupar_casos_semanaepi)
export(agrupar_cols_casos)
export(agrupar_dpto)
Expand Down
28 changes: 28 additions & 0 deletions R/checking_data.R
Original file line number Diff line number Diff line change
Expand Up @@ -737,3 +737,31 @@ agrupar_area_geo <- function(data_event,
dplyr::desc(.data$casos))
return(data_event_area)
}

#' Agrupar por tipo de enfermedad o evento
#'
#' Función que agrupa los casos por tipo de enfermedad o evento
#' @param data_event Un `data.frame` que contiene los datos de la
#' enfermedad o evento
#' @param nomb_col Un `character` (cadena de caracteres) con el nombre de
#' la columna en los datos de la enfermedad o evento que contiene los códigos
#' de los eventos; su valor por defecto es `"cod_eve"`
#' @return Un `data.frame` con los datos de la enfermedad o evento agrupados
#' por sus tipos
#' @examples
#' data(dengue2020)
#' data_limpia <- limpiar_data_sivigila(data_event = dengue2020)
#' agrupar_casos_eventos(data_event = data_limpia,
#' nomb_col = "cod_eve")
#' @export
agrupar_casos_eventos <- function(data_event, nomb_col = "cod_eve") {
stopifnot("El parametro data_event es obligatorio" = !missing(data_event),
"El parametro data_event debe ser un data.frame" =
is.data.frame(data_event),
"El parametro data_event no debe estar vacio" =
nrow(data_event) > 0,
"El parametro nomb_col debe ser una cadena de caracteres"
= is.character(nomb_col))
data_event_tipos <- agrupar_cols_casos(data_event, nomb_cols = nomb_col)
return(data_event_tipos)
}
29 changes: 28 additions & 1 deletion R/plotting.R
Original file line number Diff line number Diff line change
Expand Up @@ -771,7 +771,6 @@ plot_mpios <- function(data_agrupada,
return(plot_casos_muns)
}


#' Generar gráfico de distribución de casos por área geográfica
#'
#' Función que genera el gráfico de casos por área geográfica
Expand Down Expand Up @@ -837,3 +836,31 @@ plot_area_geo <- function(data_agrupada,
ggplot2::coord_flip()
return(plot_casos_area)
}


#' Generar tabla con la distribución de casos por tipo de
#' enfermedad o evento
#'
#' Función que genera el la tabla con la distribución de casos por
#' tipo de enfermedad o evento
#' @param data_agrupada Un `data.frame` que contiene los datos de la
#' enfermedad o evento agrupados
#' @param nomb_col Un `character` (cadena de carácteres) con el nombre de
#' la columna de los datos agrupados de la enfermedad o evento por
#' tipo; su valor por defecto es `"nombre_evento"`
#' @return Una `kable` (tabla gráfica) con la distribución de casos
#' por tipo de enfermedad o evento
plot_tabla_tipos_event <- function(data_agrupada,
nomb_col = "nombre_evento") {
data_agrupada[["nombre_evento"]] <-
stringr::str_to_title(data_agrupada[["nombre_evento"]])
tabla_tipos <- knitr::kable(data_agrupada,
col.names = c("Codigo ",
"Tipo ", "Casos"),
align = "c",
caption = "Distribucion de casos por evento") %>%
kableExtra::row_spec(0, color = "white", background = "#2274BB") %>%
kableExtra::kable_styling(full_width = FALSE,
latex_options = "HOLD_position")
return(tabla_tipos)
}
39 changes: 27 additions & 12 deletions inst/rmarkdown/templates/reports/skeleton/skeleton.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@ header-includes:
- \pagestyle{fancy}
- \usepackage[utf8]{inputenc}
- \usepackage[spanish]{babel}
- \fancyfoot[RO,RE]{\includegraphics[width=1.1cm]{logo.png}}
- \fancyfoot[R]{\includegraphics[width=1.1cm]{logo.png}}
- \usepackage[defaultfam,tabular,lining]{montserrat}
- \usepackage{tikz}
- \usepackage[absolute,overlay]{textpos}
- \definecolor{colortitle}{HTML}{0CC0DF}
- \captionsetup[table]{position=above,name=Tabla}
papersize: a4
title: \textcolor{colortitle}{.}
subtitle: ""
Expand All @@ -38,6 +39,10 @@ params:
municipio:
value: ""
label: Municipio
types_distribution:
value: TRUE
input: checkbox
label: Distribucion de casos por tipo
temporal_distribution:
value: TRUE
input: checkbox
Expand Down Expand Up @@ -88,7 +93,7 @@ showtext::showtext_auto()
```{r titulo, include = FALSE, echo = FALSE}
titulo <- paste0("Reporte Automatizado para ",
stringr::str_to_title(params$nombre_evento), " ",
params$departmento, "- Colombia",
params$departmento, " - Colombia",
", ", params$year)
fuente <- "Fuente SIVIGILA, Datos libres"
```
Expand Down Expand Up @@ -154,8 +159,18 @@ data_event_filtrada <- geo_filtro(data_event = data_event_limpia,
\pagenumbering{gobble}
\pagenumbering{arabic}
```

En este reporte se presenta el comportamiento del `r stringr::str_to_title(params$nombre_evento)` durante el año `r params$year` para Colombia con base en la fuente de datos SIVIGILA de acceso libre. En total en Colombia durante `r params$year` se reportaron `r nrow(data_event)` casos en todo el territorio nacional, en el departamento del `r params$departmento` se reportaron `r nrow(data_event_filtrada)` casos.

# Distribución de casos

La distribución de casos por tipo es la siguiente:
```{r total_cases, echo = FALSE, error = FALSE, fig.height=5, fig.width = 10, warning = FALSE, include = TRUE, message = FALSE, fig.pos = "H"}
total_casos_eventos <- agrupar_casos_eventos(data_event = data_event_filtrada,
nomb_col = "cod_eve")
plot_tabla_tipos_event(total_casos_eventos)
```

`r if (params$temporal_distribution) {"# Distribución temporal de los casos"}`
```{r cases_by_onset_symptom_date, include = FALSE}
casos_iniciosin_dia <- agrupar_fecha_inisintomas(data_event =
Expand All @@ -167,11 +182,16 @@ mes_mayor_casos <- obtener_meses_mas_casos(data_event =

`r if (params$temporal_distribution) {paste0("Los casos se distribuyen a lo largo de los meses de enero a diciembre de ", params$year, " teniendo un mayor reporte en el mes de ", mes_mayor_casos$Meses, " tanto por fecha de inicio de síntomas (Ver Figura 1) como por fecha de notificación (Ver Figura 2).")}`

\newpage

**Distribución de casos por fecha de inicio de sintomas**

```{r plot_cases_by_onset_symptom_date, fig.height = 5, fig.width = 11, fig.cap = "Distribucion de casos por dia de inicio de sintomas", include = params$temporal_distribution, eval = params$temporal_distribution}
plot_fecha_inisintomas(data_agrupada = casos_iniciosin_dia,
uni_marca = "semanaepi")
```

**Distribución de casos por fecha de notificación**
```{r cases_by_onset_notification_date, include = FALSE}
casos_fecha_notifica_dia <- agrupar_fecha_notifica(data_event =
data_event_filtrada)
Expand All @@ -182,8 +202,6 @@ plot_fecha_notifica(data_agrupada = casos_fecha_notifica_dia,
uni_marca = "semanaepi")
```

\newpage

`r if (params$epi_sex_distribution) {"# Distribución de casos por sexo y semana epidemiológica"}`

```{r distribution_cg, include = FALSE}
Expand All @@ -202,19 +220,17 @@ if (isTRUE(porcentaje_femenino < porcentaje_masculino)) {

`r if (params$epi_sex_distribution) {paste0("En el total de casos para ", params$year, " se observa una predominancia del sexo ", sexo_mayor[1], " (", sexo_mayor[2], ")% respecto al sexo ", sexo_menor[1], " (", sexo_menor[2], ")% (Ver Figura 3).")}`

```{r distribution_cg_plots, fig.height = 5, fig.width = 8, fig.cap = "Distribucion de casos por sexo", include = params$epi_sex_distribution}
```{r distribution_cg_plots, fig.height = 4, fig.width = 8, fig.cap = "Distribucion de casos por sexo", include = params$epi_sex_distribution}
plot_sex(data_agrupada = casos_sex)
```

\newpage

```{r distribution_cg_semanaepi, include = FALSE}
casos_sex_semanaepi <- agrupar_sex_semanaepi(data_event = data_event_filtrada)
```

`r if (params$epi_sex_distribution) {paste0("Esta predominancia del reporte de casos del sexo ", sexo_mayor[1], " se mantuvo a lo largo de la mayoria de semanas epidemiológicas (Ver figura 4).")}`
`r if (params$epi_sex_distribution) {paste0("Esta predominancia del reporte de casos del sexo ", sexo_mayor[1], " se mantuvo a lo largo de la mayoria de semanas epidemiológicas (Ver figura 4). ")}`

```{r plot_cg_semanaepi, fig.height = 9, fig.width = 11, fig.cap = "Distribucion de casos por sexo y semana epidemiologica", include = params$epi_sex_distribution}
```{r plot_cg_semanaepi, fig.height = 8, fig.width = 12, fig.cap = "Distribucion de casos por sexo y semana epidemiologica", include = params$epi_sex_distribution, fig.pos = "H"}
plot_sex_semanaepi(data_agrupada = casos_sex_semanaepi)
```

Expand All @@ -231,8 +247,6 @@ age_most_cases <- obtener_fila_mas_casos(data_event = casos_edad)
plot_edad(data_agrupada = casos_edad)
```

\newpage

`r if(params$age_sex_distribution) {"# Distribución de casos por edad y sexo"}`

```{r distribution_age_anger, fig.height = 3, fig.width = 9, fig.cap = "Distribucion de casos por edad y genero", include = params$age_sex_distribution}
Expand Down Expand Up @@ -278,11 +292,12 @@ mapa
dist_areas_geo <- agrupar_area_geo(data_event = data_event_filtrada)
```

```{r plot_distribution_areas, fig.height = 15, fig.width = 10, fig.cap = "Distribucion de casos por área geográfica", include = params$areas_distribution}
```{r plot_distribution_areas, fig.height = 11.5, fig.width = 10, fig.cap = "Distribucion de casos por área geográfica", include = params$areas_distribution, fig.pos = "H"}
plot_areas_geo <- plot_area_geo(data_agrupada = dist_areas_geo)
plot_areas_geo
```

\newpage

# Conclusiones

Expand Down
538 changes: 0 additions & 538 deletions inst/rmarkdown/templates/reports/skeleton/skeleton.html

This file was deleted.

Loading
Loading