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 fix and feat: plots, captions, sections, and removal of notification date distribution - INS comments #168

Merged
merged 54 commits into from
May 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
1fb3ac9
fix: axis label Edad to Grupos de edad
GeraldineGomez May 7, 2024
0163bfd
feat(plot_per_etn): added porcentaje parameter and logic
GeraldineGomez May 7, 2024
0fc85b8
feat: increase decimal number of percentage
GeraldineGomez May 7, 2024
891dd1a
feat(plot_per_etn): added percentage parameter and label in bars
GeraldineGomez May 7, 2024
95a28de
feat(agrupar_area_geo): modified logic to get the distribution only f…
GeraldineGomez May 7, 2024
fb11c7c
chore(agrupar_area_geo): updated description and examples
GeraldineGomez May 7, 2024
cecf4e0
feat(plot_area_geo): modified logic to plot the distribution only for…
GeraldineGomez May 7, 2024
8e4bcff
chore(plot_area_geo): removed dpto parameter of the example
GeraldineGomez May 7, 2024
49165e8
feat: used previous logic of agrupar_area_geo to create the function
GeraldineGomez May 7, 2024
3ba2cad
feat: added a new parameter called top
GeraldineGomez May 7, 2024
665b8d8
chore: added the description and example
GeraldineGomez May 7, 2024
ddec21e
feat: used the previous logic of plot_area_geo to create the function
GeraldineGomez May 7, 2024
18460bc
chore: added the description and examples
GeraldineGomez May 7, 2024
7cef2b6
fix(plot_per_etn): lintr brackets
GeraldineGomez May 7, 2024
5b31c70
chore(skeleton): added subsection with the municipalities top 10 by g…
GeraldineGomez May 7, 2024
76c7fa2
fix: removed agrupar_fecha_notifica function
GeraldineGomez May 7, 2024
4ddaf4a
fix: removed plot_fecha_notifica function
GeraldineGomez May 7, 2024
39271cc
fix: removed section Distribución de casos por fecha de notificación
GeraldineGomez May 7, 2024
1737275
feat: added parameter estandar and its logic
GeraldineGomez May 8, 2024
50d5a33
chore: added documentation of parameter estandar
GeraldineGomez May 8, 2024
469410c
fix(plot_per_etn): added logic to regroup data event
GeraldineGomez May 8, 2024
dcb9537
fix(plot_per_etn): removed distinction between events in the plot
GeraldineGomez May 8, 2024
f380ea2
chore: removed function obtener_casos_pob_especial
GeraldineGomez May 9, 2024
08994b4
chore: removed function agrupar_pob_especial
GeraldineGomez May 9, 2024
e7e55d1
fix(plot_map): removed index table of map visualisation
GeraldineGomez May 9, 2024
11f3373
chore(plot_map): added validation of fuente_data
GeraldineGomez May 9, 2024
35db370
feat(plot_map): visualize the entire department and shade the municip…
GeraldineGomez May 9, 2024
5d91601
feat: change bar text color to white
GeraldineGomez May 9, 2024
4bab08c
feat(plot_per_etn): added percentage in text bars
GeraldineGomez May 9, 2024
123f5b4
feat(plot_per_etn): collapse axis text labels
GeraldineGomez May 9, 2024
26e651e
feat(skeleton): updated width and position of ethnicity plot
GeraldineGomez May 9, 2024
7879ab3
chore: updated incidence label with geo ocurrence
GeraldineGomez May 9, 2024
063c4c3
feat(plot_tabla_incidencia_geo): added geo occurrence in caption label
GeraldineGomez May 9, 2024
17f9c8e
fix: split long tables in different pages
GeraldineGomez May 9, 2024
5babd47
fix(plot_area_geo): defined bar with to improve the visualisation
GeraldineGomez May 9, 2024
02cf744
fix(plot_tabla_incidencia_sex): removed column with order
GeraldineGomez May 9, 2024
38068f8
chore(skeleton): updated width of spatial distribution map
GeraldineGomez May 9, 2024
d2d14a4
fix: added some new lines
GeraldineGomez May 9, 2024
97dbc85
fix: removed description related to distribution by notification date
GeraldineGomez May 9, 2024
116586d
fix(skeleton): removed title Distribución de casos por fecha de inici…
GeraldineGomez May 9, 2024
0c72162
fix(skeleton): sex definition with most cases
GeraldineGomez May 9, 2024
8c01af5
fix(skeleton): sex plot withd
GeraldineGomez May 9, 2024
839e007
fix(skeleton): added new pages
GeraldineGomez May 9, 2024
913836c
fix(skeleton): description of distribution by age
GeraldineGomez May 9, 2024
97b0e6b
chore(skeleton): moved distribution by ethnicity section
GeraldineGomez May 9, 2024
a42b52e
fix: replace nombre to municipality name corresponding to geo ocurrence
GeraldineGomez May 9, 2024
2e80767
chore(skeleton): updated width geo area plot
GeraldineGomez May 9, 2024
2108f24
chore(skeleton): updated height top 10 geo area plot
GeraldineGomez May 9, 2024
c7e70b0
chore(skeleton): updated height and width of sex incidence plot
GeraldineGomez May 9, 2024
2cda200
chore: removed unnecessary keys
GeraldineGomez May 9, 2024
74c3528
chore(plot_per_etn): updated axis label key
GeraldineGomez May 9, 2024
c6e4463
chore(styles): increased font size and weight
GeraldineGomez May 9, 2024
8dc1373
chore(ct_analysis): removed section 4.2 related to notification date
GeraldineGomez May 10, 2024
31176dc
chore: removed cowplot & gridExtra dependencies
GeraldineGomez May 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@ Imports:
readxl,
sysfonts,
showtext,
cowplot,
gridExtra,
kableExtra
Suggests:
knitr,
Expand Down
6 changes: 2 additions & 4 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,14 @@ export(agrupar_edad)
export(agrupar_edad_sex)
export(agrupar_eventos)
export(agrupar_fecha_inisintomas)
export(agrupar_fecha_notifica)
export(agrupar_mpio)
export(agrupar_per_etn)
export(agrupar_pob_especial)
export(agrupar_rango_edad)
export(agrupar_semanaepi)
export(agrupar_sex)
export(agrupar_sex_semanaepi)
export(agrupar_tipo_caso)
export(agrupar_top_area_geo)
export(agrupar_years)
export(calcular_incidencia)
export(calcular_incidencia_geo)
Expand All @@ -34,7 +33,6 @@ export(limpiar_fecha_event)
export(limpiar_val_atipic)
export(list_events)
export(listar_dptos)
export(obtener_casos_pob_especial)
export(obtener_cond_inciden_event)
export(obtener_dptos)
export(obtener_estetica_escala)
Expand All @@ -49,7 +47,6 @@ export(plot_dptos)
export(plot_edad)
export(plot_edad_sex)
export(plot_fecha_inisintomas)
export(plot_fecha_notifica)
export(plot_map)
export(plot_mpios)
export(plot_per_etn)
Expand All @@ -60,6 +57,7 @@ export(plot_tabla_incidencia_sex)
export(plot_tabla_tipos_event)
export(plot_tipo_caso)
export(plot_tipo_caso_years)
export(plot_top_area_geo)
export(plot_years)
export(remove_error_fecha)
export(remove_val_nin)
Expand Down
183 changes: 84 additions & 99 deletions R/checking_data.R
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,14 @@ agrupar_semanaepi <- function(data_event,
#' @param porcentaje Un `boolean` (TRUE o FALSE) que indica
#' si se debe agregar una columna con el porcentaje de casos;
#' su valor por defecto es `FALSE`
#' @param estandar Un `boolean` (TRUE o FALSE) que indica
#' si se debe utilizar el estandar de agrupación de los datos
#' del evento o enfermedad propuesto por el paquete, es decir
#' que se incluyan estas columnas o variables como parte del
#' resultado `c("cod_eve", "nombre_evento", "ano")`; su valor
#' por defecto es `TRUE`, si su valor es `FALSE` agrupara los
#' datos solamente por las columnas o variables enviadas en el
#' párametro `nomb_cols`
#' @return Un `data.frame` con los datos de una enfermedad
#' o evento agrupados por el nombre de la(s) columna(s) y el
#' número de casos
Expand All @@ -142,7 +150,8 @@ agrupar_semanaepi <- function(data_event,
#' @export
agrupar_cols_casos <- function(data_event,
nomb_cols,
porcentaje = FALSE) {
porcentaje = FALSE,
estandar = TRUE) {
stopifnot("El parametro data_event es obligatorio" = !missing(data_event),
"El parametro data_event debe ser un data.frame" =
is.data.frame(data_event),
Expand All @@ -156,17 +165,23 @@ agrupar_cols_casos <- function(data_event,
(!is.character(nomb_cols) && is.array(nomb_cols)),
"El parametro porcentaje debe ser un booleano (TRUE o FALSE)" =
is.logical(porcentaje))
nomb_cols <- append(nomb_cols, c("cod_eve", "nombre_evento", "ano"))
data_event_agrupada <- data_event %>%
dplyr::group_by_at(nomb_cols) %>%
dplyr::summarise(casos = dplyr::n(), .groups = "drop")
if (estandar) {
nomb_cols <- append(nomb_cols, c("cod_eve", "nombre_evento", "ano"))
data_event_agrupada <- data_event %>%
dplyr::group_by_at(nomb_cols) %>%
dplyr::summarise(casos = dplyr::n(), .groups = "drop")
} else {
data_event_agrupada <- data_event %>%
dplyr::group_by_at(nomb_cols) %>%
dplyr::summarise(casos = sum(.data[["casos"]]), .groups = "drop")
}
if (porcentaje) {
data_event_agrupada <-
data_event_agrupada %>%
dplyr::mutate(porcentaje =
round(data_event_agrupada$casos
/ sum(data_event_agrupada$casos) * 100,
1))
2))
}
return(data_event_agrupada)
}
Expand Down Expand Up @@ -283,46 +298,6 @@ agrupar_fecha_inisintomas <- function(data_event,
return(data_agrupada_fecha_ini)
}

#' Agrupar por fecha de notificación y casos
#'
#' Función que agrupa los datos de una enfermedad o evento por fecha de
#' notificación y número de casos
#' @param data_event Un `data.frame` que contiene los datos de la enfermedad
#' o evento
#' @param col_fecha Un `character` (cadena de caracteres) con el nombre de
#' la columna que contiene las fechas de notificación en los datos de la
#' enfermedad o evento; su valor por defecto es `"fec_not"`
#' @return Un `data.frame` con los datos de enfermedades agrupados por fecha de
#' notificación y número de casos
#' @examples
#' data(dengue2020)
#' data_limpia <- limpiar_data_sivigila(data_event = dengue2020)
#' agrupar_fecha_notifica(data_event = data_limpia,
#' col_fecha = "fec_not")
#' @export
agrupar_fecha_notifica <- function(data_event,
col_fecha = "fec_not") {
fechas_cols_nombres <- config::get(file =
system.file("extdata",
"config.yml",
package = "sivirep"),
"dates_column_names")
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)
if (is.null(col_fecha)) {
col_fecha <- fechas_cols_nombres[2]
}
stopifnot("El parametro col_fecha debe ser una cadena de caracteres"
= is.character(col_fecha))
nomb_cols <- append(col_fecha, "semana")
data_agrupada_fecha_not <- agrupar_cols_casos(data_event,
nomb_cols = nomb_cols)
return(data_agrupada_fecha_not)
}

#' Agrupar por sexo y casos
#'
#' Función que agrupa los datos de una enfermedad o evento
Expand Down Expand Up @@ -507,47 +482,6 @@ agrupar_edad_sex <- function(data_event,
return(data_event_edad_sex)
}

#' Agrupar por población especial y casos
#'
#' Función que agrupa los datos de la enfermedad o evento por población
#' especial y casos
#' @param data_event Un `data.frame` que contiene los datos de la enfermedad
#' o evento
#' @param col_pob Un `character` (cadena de caracteres) con el nombre de la
#' columna que contiene las poblaciones especiales en los datos de la
#' enfermedad o evento; su valor por defecto es `"poblacion"`
#' @param porcentaje Un `boolean` (TRUE o FALSE) que indica si se debe
#' agregar una columna con el porcentaje de casos; su valor por
#' defecto es `FALSE`
#' @return Un `data.frame` con los datos de la enfermedad o evento agrupados
#' por poblaciones especiales y casos
#' @examples
#' data(dengue2020)
#' data_limpia <- limpiar_data_sivigila(data_event = dengue2020)
#' agrupar_pob_especial(data_event = data_limpia,
#' col_pob = "poblacion",
#' porcentaje = TRUE)
#' @export
agrupar_pob_especial <- function(data_event,
col_pob = "poblacion",
porcentaje = TRUE) {
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 col_pob debe ser una cadena de caracteres"
= is.character(col_pob),
"El parametro porcentaje debe ser un booleano (TRUE o FALSE)" =
is.logical(porcentaje))
data_event_especial <- obtener_casos_pob_especial(data_event)
data_event_especial_agrupada <- data.frame(poblacion =
data_event_especial$poblacion,
casos =
data_event_especial$casos)
return(data_event_especial_agrupada)
}

#' Agrupar por departamento y casos
#'
#' Función que agrupa los datos por códigos de departamento y
Expand Down Expand Up @@ -674,6 +608,46 @@ agrupar_mpio <- function(data_event,
#' Agrupar por área geográfica
#'
#' Función que agrupa los datos de una enfermedad o evento por área
#' geográfica
#' @param data_event Un `data.frame` que contiene los datos de la
#' enfermedad o evento
#' @param col_area Un `character` (cadena de caracteres) con el nombre de
#' la columna que contiene las áreas geográficas en los datos de la enfermedad
#' o evento; su valor por defecto es `"area"`
#' @param porcentaje Un `boolean` (TRUE o FALSE) que indica si se debe
#' agregar una columna con el porcentaje de casos; su valor por
#' defecto es `FALSE`
#' @return Un `data.frame` con los datos de la enfermedad o evento agrupados
#' por área geográfica
#' @examples
#' data(dengue2020)
#' data_limpia <- limpiar_data_sivigila(data_event = dengue2020)
#' agrupar_area_geo(data_event = data_limpia,
#' col_area = "area",
#' porcentaje = FALSE)
#' @export
agrupar_area_geo <- function(data_event,
col_area = "area",
porcentaje = FALSE) {
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 col_area debe ser una cadena de caracteres"
= is.character(col_area),
"El parametro porcentaje debe ser un booleano (TRUE o FALSE)" =
is.logical(porcentaje))
data_event_area <- agrupar_cols_casos(data_event,
col_area)
data_event_area <- dplyr::arrange(data_event_area,
dplyr::desc(.data$casos))
return(data_event_area)
}

#' Agrupar por área geográfica a nivel departamental o municipal
#'
#' Función que agrupa los datos de una enfermedad o evento por área
#' geográfica a nivel departamental o municipal
#' @param data_event Un `data.frame` que contiene los datos de la
#' enfermedad o evento
Expand All @@ -690,20 +664,25 @@ agrupar_mpio <- function(data_event,
#' @param porcentaje Un `boolean` (TRUE o FALSE) que indica si se debe
#' agregar una columna con el porcentaje de casos; su valor por
#' defecto es `FALSE`
#' @param top Un `numeric` (numerico) que indica la cantidad de departamentos o
#' municipios con mayor número de casos que se deben retornar; su valor
#' por defecto es `10`
#' @return Un `data.frame` con los datos de la enfermedad o evento agrupados
#' por códigos de municipios y número de casos
#' @examples
#' data(dengue2020)
#' data_limpia <- limpiar_data_sivigila(data_event = dengue2020)
#' agrupar_area_geo(data_event = data_limpia,
#' dpto = "Antioquia",
#' col_area = "area",
#' porcentaje = FALSE)
#' agrupar_top_area_geo(data_event = data_limpia,
#' dpto = "Antioquia",
#' col_area = "area",
#' porcentaje = FALSE,
#' top = 10)
#' @export
agrupar_area_geo <- function(data_event,
agrupar_top_area_geo <- function(data_event,
dpto = NULL,
col_area = "area",
porcentaje = FALSE) {
porcentaje = FALSE,
top = 10) {
stopifnot("El parametro data_event es obligatorio" = !missing(data_event),
"El parametro data_event debe ser un data.frame" =
is.data.frame(data_event),
Expand All @@ -721,18 +700,19 @@ agrupar_area_geo <- function(data_event,
if (length(aux_dpto) > 1) {
data_event_area <- geo_filtro(data_event, dpto)
}
data_event_area <- agrupar_cols_casos(data_event_area,
nomb_cols)
} else {
dpto <- unique(data_event_area[[nomb_cols[3]]])
if (length(dpto) != 1) {
nomb_cols <- nomb_cols[1:3]
}
data_event_area <- agrupar_cols_casos(data_event_area,
nomb_cols)
}
data_event_area <- agrupar_cols_casos(data_event_area,
nomb_cols)
data_event_area <- dplyr::arrange(data_event_area,
dplyr::desc(.data$casos))
if (top <= nrow(data_event_area)) {
data_event_area <- data_event_area[1:top, ]
}
return(data_event_area)
}

Expand Down Expand Up @@ -842,6 +822,9 @@ agrupar_tipo_caso <- function(data_event, cols_tipo = "tip_cas") {
#' @param cols_etn Un `character` (cadena de caracteres) con el nombre de
#' las columna(s) que contiene(n) la pertenencia étnica en los datos de la
#' enfermedad o evento; su valor por defecto es `"per_etn"`
#' @param porcentaje Un `boolean` (TRUE o FALSE) que indica
#' si se debe agregar una columna con el porcentaje de casos;
#' su valor por defecto es `TRUE`
#' @return Un `data.frame` con los datos de la enfermedad o evento agrupados
#' por la pertenencia étnica
#' @examples
Expand All @@ -850,7 +833,8 @@ agrupar_tipo_caso <- function(data_event, cols_tipo = "tip_cas") {
#' agrupar_per_etn(data_event = data_limpia,
#' cols_etn = "per_etn")
#' @export
agrupar_per_etn <- function(data_event, cols_etn = "per_etn") {
agrupar_per_etn <- function(data_event, cols_etn = "per_etn",
porcentaje = TRUE) {
stopifnot("El parametro data_event es obligatorio" = !missing(data_event),
"El parametro data_event debe ser un data.frame" =
is.data.frame(data_event),
Expand All @@ -868,7 +852,8 @@ agrupar_per_etn <- function(data_event, cols_etn = "per_etn") {
"labels_per_etn")
etiquetas <- unlist(etiquetas)
data_event_tipo <- agrupar_cols_casos(data_event,
nomb_cols = cols_etn)
nomb_cols = cols_etn,
porcentaje = porcentaje)
data_event_tipo <- data_event_tipo %>%
dplyr::mutate(nombre_per_etn =
etiquetas[as.character(.data[[cols_etn[1]]])])
Expand Down
Loading
Loading