From 97ac7f69637cb19abedd32c7d49dd3141275c1d8 Mon Sep 17 00:00:00 2001 From: RodrigoZepeda Date: Thu, 8 Sep 2022 20:14:54 +0000 Subject: [PATCH] Style code --- R/casos.R | 163 +++++++++++++--------------- R/cfr.R | 8 +- R/chr.R | 12 +- R/descarga_datos_red_irag.R | 14 +-- R/descarga_datos_variantes_GISAID.R | 16 +-- R/numero_pruebas.R | 6 +- R/plot_covid.R | 71 ++++++------ R/positividad.R | 12 +- R/rt.R | 118 ++++++++++---------- 9 files changed, 209 insertions(+), 211 deletions(-) diff --git a/R/casos.R b/R/casos.R index 4eda30c..d1fb26e 100644 --- a/R/casos.R +++ b/R/casos.R @@ -47,7 +47,7 @@ #' left_join(datos_covid$dict$PACIENTE, by = c("TIPO_PACIENTE" = "CLAVE")) #' ``` #' -#' @param datos_covid (**obligatorio**) Lista de `tibble`s o `duckdb`s resultante de +#' @param datos_covid (**obligatorio**) Lista de `tibble`s o `duckdb`s resultante de #' [descarga_datos_abiertos()] o [read_datos_abiertos()] #' #' @param entidades (**opcional**) Vector con las entidades de las unidades medicas a analizar. @@ -235,9 +235,9 @@ #' # que otras variables puedes clasificar #' datos_covid$dats |> dplyr::glimpse() #' -#' #Una vez hayas concluido tu trabajo no olvides desconectar +#' # Una vez hayas concluido tu trabajo no olvides desconectar #' datos_covid$disconnect() -#' +#' #' @seealso [descarga_datos_abiertos()] [numero_pruebas()] [cfr()] [chr()] [estima_rt()] #' [positividad()] #' @export @@ -257,8 +257,8 @@ casos <- function(datos_covid, "YUCAT\u00c1N", "ZACATECAS" ), group_by_entidad = TRUE, - entidad_tipo = c("Unidad Medica", "Residencia","Nacimiento"), - fecha_tipo = c("Sintomas", "Ingreso","Defuncion"), + entidad_tipo = c("Unidad Medica", "Residencia", "Nacimiento"), + fecha_tipo = c("Sintomas", "Ingreso", "Defuncion"), tipo_clasificacion = c( "Sospechosos", "Confirmados COVID", "Negativo a COVID", "Inv\u00e1lido", @@ -391,10 +391,10 @@ casos <- function(datos_covid, if (nrow(entidades) < 1) { cli::cli_abort("No logramos encontrar las entidades especificadas") } - - #Si esta la opcion de fill zeros se agrega + + # Si esta la opcion de fill zeros se agrega if (fill_zeros) { - + # Check the dates to expand .fechasminmax <- datos_covid$dats |> dplyr::select_at(fecha_tipo) |> @@ -403,23 +403,21 @@ casos <- function(datos_covid, fechamax = max(!!as.symbol(fecha_tipo), na.rm = TRUE) ) |> dplyr::collect() - + .datesq <- seq(.fechasminmax$fechamin[1], .fechasminmax$fechamax[1], by = "1 day") - - #Get unique values of grouping vars - if (length(.grouping_vars) > 0){ - .group_values <- datos_covid$dats |> + + # Get unique values of grouping vars + if (length(.grouping_vars) > 0) { + .group_values <- datos_covid$dats |> dplyr::distinct_at(.grouping_vars) |> - dplyr::collect() - - #Expand to possible combinations + dplyr::collect() + + # Expand to possible combinations .group_values <- .group_values |> tidyr::expand(!!!.group_values) - } else { .group_values <- NULL } - } lista_entidades <- paste0(entidades$CLAVE_ENTIDAD, collapse = "|") @@ -427,20 +425,18 @@ casos <- function(datos_covid, dplyr::filter( stringr::str_detect(paste0("\\^", !!as.symbol(entidad_tipo), "\\$"), lista_entidades) ) - - #Agregamos la entidad a la combinacion si fill zeros - if (fill_zeros & group_by_entidad){ - - .grouping_entidad <- datos_covid$dict[[entidad_tipo]] |> + + # Agregamos la entidad a la combinacion si fill zeros + if (fill_zeros & group_by_entidad) { + .grouping_entidad <- datos_covid$dict[[entidad_tipo]] |> dplyr::filter(stringr::str_detect(!!as.symbol("CLAVE_ENTIDAD"), lista_entidades)) |> dplyr::distinct(!!as.symbol("CLAVE_ENTIDAD"), .keep_all = FALSE) |> - dplyr::rename(!!as.symbol(entidad_tipo) := !!as.symbol("CLAVE_ENTIDAD")) - - if (nrow(.grouping_entidad) == 0){ + dplyr::rename(!!as.symbol(entidad_tipo) := !!as.symbol("CLAVE_ENTIDAD")) + + if (nrow(.grouping_entidad) == 0) { .grouping_entidad <- NULL } - - } else if (fill_zeros & !group_by_entidad){ + } else if (fill_zeros & !group_by_entidad) { .grouping_entidad <- NULL } @@ -476,25 +472,21 @@ casos <- function(datos_covid, .casos <- .casos |> dplyr::filter(!!as.symbol("CLASIFICACION_FINAL") %in% clasificaciones_finales) } - - #Agregamos la entidad a la combinacion si fill zeros - if (fill_zeros & group_by_tipo_clasificacion){ - + + # Agregamos la entidad a la combinacion si fill zeros + if (fill_zeros & group_by_tipo_clasificacion) { .grouping_clasificacion <- datos_covid$dict[["CLASIFICACION_FINAL"]] |> dplyr::filter(!!as.symbol("CLAVE") %in% clasificaciones_finales) |> dplyr::distinct(!!as.symbol("CLAVE"), .keep_all = FALSE) |> dplyr::rename(!!as.symbol("CLASIFICACION_FINAL") := !!as.symbol("CLAVE")) |> - dplyr::mutate(!!as.symbol("CLASIFICACION_FINAL") := - as.integer(!!as.symbol("CLASIFICACION_FINAL"))) - - if (nrow(.grouping_clasificacion) == 0){ + dplyr::mutate(!!as.symbol("CLASIFICACION_FINAL") := + as.integer(!!as.symbol("CLASIFICACION_FINAL"))) + + if (nrow(.grouping_clasificacion) == 0) { .grouping_clasificacion <- NULL } - - } else if (fill_zeros & !group_by_tipo_clasificacion){ - + } else if (fill_zeros & !group_by_tipo_clasificacion) { .grouping_clasificacion <- NULL - } #> TIPO DE PACIENTE---- @@ -515,24 +507,22 @@ casos <- function(datos_covid, .casos <- .casos |> dplyr::filter(!!as.symbol("TIPO_PACIENTE") %in% lista_claves) - #Agregamos la entidad a la combinacion si fill zeros - if (fill_zeros & group_by_tipo_paciente){ - + # Agregamos la entidad a la combinacion si fill zeros + if (fill_zeros & group_by_tipo_paciente) { .grouping_paciente <- datos_covid$dict[["PACIENTE"]] |> dplyr::filter(!!as.symbol("CLAVE") %in% lista_claves) |> dplyr::distinct(!!as.symbol("CLAVE"), .keep_all = FALSE) |> dplyr::rename(!!as.symbol("TIPO_PACIENTE") := !!as.symbol("CLAVE")) |> - dplyr::mutate(!!as.symbol("TIPO_PACIENTE") := - as.integer(!!as.symbol("TIPO_PACIENTE"))) - - if (nrow(.grouping_paciente) == 0){ + dplyr::mutate(!!as.symbol("TIPO_PACIENTE") := + as.integer(!!as.symbol("TIPO_PACIENTE"))) + + if (nrow(.grouping_paciente) == 0) { .grouping_paciente <- NULL } - - } else if (fill_zeros & !group_by_tipo_paciente){ + } else if (fill_zeros & !group_by_tipo_paciente) { .grouping_paciente <- NULL } - + #> TIPO DE UCI---- # Filtramos por tipo de uci ucis <- @@ -547,21 +537,19 @@ casos <- function(datos_covid, lista_claves <- as.numeric(ucis$CLAVE) .casos <- .casos |> dplyr::filter(!!as.symbol("UCI") %in% lista_claves) - - #Agregamos la entidad a la combinacion si fill zeros - if (fill_zeros & group_by_tipo_uci){ - + + # Agregamos la entidad a la combinacion si fill zeros + if (fill_zeros & group_by_tipo_uci) { .grouping_uci <- datos_covid$dict[["UCI"]] |> dplyr::filter(!!as.symbol("CLAVE") %in% lista_claves) |> dplyr::distinct(!!as.symbol("CLAVE"), .keep_all = FALSE) |> dplyr::rename(!!as.symbol("UCI") := !!as.symbol("CLAVE")) |> dplyr::mutate(!!as.symbol("UCI") := as.integer(!!as.symbol("UCI"))) - - if (nrow(.grouping_uci) == 0){ + + if (nrow(.grouping_uci) == 0) { .grouping_uci <- NULL } - - } else if (fill_zeros & !group_by_tipo_uci){ + } else if (fill_zeros & !group_by_tipo_uci) { .grouping_uci <- NULL } @@ -579,49 +567,46 @@ casos <- function(datos_covid, lista_claves <- as.numeric(sectores$CLAVE) .casos <- .casos |> dplyr::filter(!!as.symbol("SECTOR") %in% lista_claves) - - #Agregamos la entidad a la combinacion si fill zeros - if (fill_zeros & group_by_tipo_sector){ - + + # Agregamos la entidad a la combinacion si fill zeros + if (fill_zeros & group_by_tipo_sector) { .grouping_sector <- datos_covid$dict[["SECTOR"]] |> dplyr::filter(!!as.symbol("CLAVE") %in% lista_claves) |> dplyr::distinct(!!as.symbol("CLAVE"), .keep_all = FALSE) |> dplyr::rename(!!as.symbol("SECTOR") := !!as.symbol("CLAVE")) |> dplyr::mutate(!!as.symbol("SECTOR") := as.integer(!!as.symbol("SECTOR"))) - - if (nrow(.grouping_sector) == 0){ + + if (nrow(.grouping_sector) == 0) { .grouping_sector <- NULL } - - } else if (fill_zeros & !group_by_tipo_sector){ + } else if (fill_zeros & !group_by_tipo_sector) { .grouping_sector <- NULL } #> DEFUNCIONES---- if (defunciones) { .casos <- .casos |> - dplyr::filter(!is.na(!!as.symbol("FECHA_DEF")) & - !!as.symbol("FECHA_DEF") >= as.POSIXct("2000/01/01")) + dplyr::filter(!is.na(!!as.symbol("FECHA_DEF")) & + !!as.symbol("FECHA_DEF") >= as.POSIXct("2000/01/01")) } #> EDADES---- if (!is.null(edad_cut)) { - #Obtenemos los grupos de edad + # Obtenemos los grupos de edad .casos <- .casos |> dplyr::mutate(!!as.symbol("EDAD_CAT") := cut(!!as.symbol("EDAD"), breaks = edad_cut)) |> dplyr::filter(!is.na(!!as.symbol("EDAD_CAT"))) } - - #Agregamos la entidad a la combinacion si fill zeros - if (fill_zeros & !is.null(edad_cut)){ - + + # Agregamos la entidad a la combinacion si fill zeros + if (fill_zeros & !is.null(edad_cut)) { .grouping_edad <- dplyr::tibble(EDAD_CAT = cut(edad_cut, breaks = edad_cut)) |> - dplyr::filter(!is.na(!!as.symbol("EDAD_CAT"))) - - if (nrow(.grouping_edad) == 0){ - .grouping_edad <- NULL - } - } else if (fill_zeros & is.null(edad_cut)){ + dplyr::filter(!is.na(!!as.symbol("EDAD_CAT"))) + + if (nrow(.grouping_edad) == 0) { + .grouping_edad <- NULL + } + } else if (fill_zeros & is.null(edad_cut)) { .grouping_edad <- NULL } @@ -675,19 +660,19 @@ casos <- function(datos_covid, dplyr::ungroup() if (as_tibble) { - .casos <- .casos |> dplyr::collect() if (fill_zeros) { + .groups <- tidyr::expand_grid( + .group_values, .grouping_entidad, + .grouping_clasificacion, .grouping_paciente, + .grouping_uci, .grouping_sector, .grouping_edad + ) - .groups <- tidyr::expand_grid(.group_values, .grouping_entidad, - .grouping_clasificacion, .grouping_paciente, - .grouping_uci, .grouping_sector, .grouping_edad) - # Create grid of all possible dates .grid_casos <- tidyr::expand_grid(!!as.symbol(fecha_tipo) := .datesq, .groups) - + # Full join .casos <- .casos |> @@ -698,7 +683,7 @@ casos <- function(datos_covid, } if (nrow(entidades) > 0 & group_by_entidad) { - name_join <- c("CLAVE_ENTIDAD") + name_join <- c("CLAVE_ENTIDAD") names(name_join) <- entidad_tipo .casos <- .casos |> dplyr::left_join(datos_covid$dict[entidad_tipo][[1]], by = name_join) } @@ -729,9 +714,9 @@ casos <- function(datos_covid, } if (nrow(sectores) > 0 & group_by_tipo_sector) { - name_join <- c("CLAVE") - names(name_join) <- "SECTOR" - sector_df <- datos_covid$dict["SECTOR"][[1]] + name_join <- c("CLAVE") + names(name_join) <- "SECTOR" + sector_df <- datos_covid$dict["SECTOR"][[1]] colnames(sector_df) <- c("CLAVE", "DESCRIPCION_TIPO_SECTOR") .casos <- .casos |> dplyr::left_join(sector_df, by = name_join) diff --git a/R/cfr.R b/R/cfr.R index 6bdaca9..cb55c9d 100644 --- a/R/cfr.R +++ b/R/cfr.R @@ -83,7 +83,7 @@ #' #' # Finalmente desconectamos #' datos_covid$disconnect() -#' +#' #' @seealso [descarga_datos_abiertos()] [numero_pruebas()] [chr()] [estima_rt()] #' [positividad()] [casos()] #' @@ -172,13 +172,13 @@ cfr <- function(datos_covid, group_by_tipo_sector = group_by_tipo_sector, defunciones = FALSE, edad_cut = edad_cut, - as_tibble = TRUE, + as_tibble = TRUE, fill_zeros = fill_NA, list_name = name_1, .grouping_vars = .grouping_vars )[[name_1]] |> - dplyr::mutate(!!as.symbol("n") := - ifelse(!!as.symbol("n") == 0, NA, !!as.symbol("n"))) #change to NA the ones with 0 + dplyr::mutate(!!as.symbol("n") := + ifelse(!!as.symbol("n") == 0, NA, !!as.symbol("n"))) # change to NA the ones with 0 .casos_defunciones <- casos( datos_covid = datos_covid, diff --git a/R/chr.R b/R/chr.R index 0d68b88..1de622d 100644 --- a/R/chr.R +++ b/R/chr.R @@ -16,8 +16,8 @@ #' @inheritParams casos #' @inheritParams positividad #' -#' @param incluir_paciente_no_especificado (**opcional**) Si en el denominador se incluyen -#' los pacientescuyo tipo es `NO ESPECIFICADO`. Por default es `FALSE` por lo que sólo +#' @param incluir_paciente_no_especificado (**opcional**) Si en el denominador se incluyen +#' los pacientescuyo tipo es `NO ESPECIFICADO`. Por default es `FALSE` por lo que sólo #' se incluyen `AMBULATORIO`, `HOSPITALIZADO`. #' #' @importFrom rlang := @@ -77,7 +77,7 @@ #' #' # Finalmente desconectamos #' datos_covid$disconnect() -#' +#' #' @seealso [descarga_datos_abiertos()] [numero_pruebas()] [cfr()] [estima_rt()] #' [positividad()] [casos()] #' @export @@ -144,7 +144,7 @@ chr <- function(datos_covid, } } - #Obtenemos los tipos de paciente a usar + # Obtenemos los tipos de paciente a usar if (incluir_paciente_no_especificado) { tp <- c("AMBULATORIO", "HOSPITALIZADO", "NO ESPECIFICADO") } else { @@ -176,8 +176,8 @@ chr <- function(datos_covid, list_name = name_1, .grouping_vars = .grouping_vars )[[name_1]] |> - dplyr::mutate(!!as.symbol("n") := - ifelse(!!as.symbol("n") == 0, NA, !!as.symbol("n"))) #change to NA the ones with 0 + dplyr::mutate(!!as.symbol("n") := + ifelse(!!as.symbol("n") == 0, NA, !!as.symbol("n"))) # change to NA the ones with 0 .casos_hospitalizados <- casos( diff --git a/R/descarga_datos_red_irag.R b/R/descarga_datos_red_irag.R index 1e1ba75..227c9e1 100644 --- a/R/descarga_datos_red_irag.R +++ b/R/descarga_datos_red_irag.R @@ -15,13 +15,13 @@ #' #' @param nivel (**opcional**) Regresa la ocupacion `"Estatal"`(default) o por `"Unidad Medica"` #' @param quiet (**opcional**) booleana para no imprimir mensajes en la consola. -#' @param cache (**opcional**) cache para [pins::board_url()]. Representa el directorio donde -#' se almacenaran los datos descargados en formato de `pins`. -#' @param use_cache_on_failure (**opcional**) parametro para [pins::board_url()]. En caso de -#' `TRUE` (default) si no puede descargar nueva informacion utiliza la que ya tiene en memoria -#' aunque sea vieja. -#' @param force_download (**opcional**) analiza si cambio el pin y descarga datos nuevos en -#' caso afirmativo. +#' @param cache (**opcional**) cache para [pins::board_url()]. Representa el directorio donde +#' se almacenaran los datos descargados en formato de `pins`. +#' @param use_cache_on_failure (**opcional**) parametro para [pins::board_url()]. En caso de +#' `TRUE` (default) si no puede descargar nueva informacion utiliza la que ya tiene en memoria +#' aunque sea vieja. +#' @param force_download (**opcional**) analiza si cambio el pin y descarga datos nuevos en +#' caso afirmativo. #' @param show_warnings (**opcional**) si arrojar `warnings` o callar #' @param ... parametros adicionales para [pins::pin_download()]. #' diff --git a/R/descarga_datos_variantes_GISAID.R b/R/descarga_datos_variantes_GISAID.R index 5bec268..ce4b77d 100644 --- a/R/descarga_datos_variantes_GISAID.R +++ b/R/descarga_datos_variantes_GISAID.R @@ -16,11 +16,11 @@ #' actualizada y si si la descarga, si no, utiliza informacion almacenada en el `cache` local. #' #' La descarga usa el paquete `pins` -#' -#' @param nivel (**opcional**) si se desea descargar informacion `"nacional"` (default) o de +#' +#' @param nivel (**opcional**) si se desea descargar informacion `"nacional"` (default) o de #' la Ciudad de Mexico: `"cdmx"`. #' @inheritParams descarga_datos_red_irag -#' +#' #' @return `tibble` con los datos de porcentuales de variantes #' \itemize{ #' \item `variant` - La variante clasificada mediante [Pangolin](https://cov-lineages.org/resources/pangolin.html) @@ -31,7 +31,7 @@ #' \item `Actualizacion` - La fecha de actualizacion ultima de los datos. #' \item `Fuente` - La fuente desde la cual se obtuvo la informacion de dicha variante. #' } -#' +#' #' @examples #' \dontrun{ #' # Descarga de variantes a nivel nacional @@ -54,7 +54,7 @@ #' ggplot(variantes_covid) + #' ggstream::geom_stream(aes( #' x = ymd("2019/12/27") + years(ano - 2020) + weeks(semana), -#' y = n, fill = variant, +#' y = n, fill = variant, #' )) + #' theme_minimal() #' } @@ -85,13 +85,13 @@ descarga_datos_variantes_GISAID <- function(nivel = c("nacional", "cdmx"), show_warnings = TRUE, ...) { - #Pasamos a minusculas el nivel por si las dudas + # Pasamos a minusculas el nivel por si las dudas nivel <- tolower(nivel) - + # Ponemos el diccionario github <- "https://raw.githubusercontent.com/" cuenta <- "RodrigoZepeda/VariantesCovid/main/tablas/" - fname <- paste0(github, cuenta, "Proporcion_variantes_", nivel[1], ".csv") + fname <- paste0(github, cuenta, "Proporcion_variantes_", nivel[1], ".csv") if (!quiet) { cli::cli_alert("Descargando {nivel[1]} desde {.url {fname}}") diff --git a/R/numero_pruebas.R b/R/numero_pruebas.R index 46d600f..a81cc15 100644 --- a/R/numero_pruebas.R +++ b/R/numero_pruebas.R @@ -16,7 +16,7 @@ #' @inheritParams casos #' #' @param tipo_prueba (**opcional**) Vector con el tipo de pruebas a incluir `Antigeno`, `PCR`. Por -#' default se incluyen ambas. +#' default se incluyen ambas. #' #' @param group_by_tipo_prueba (**opcional**) Booleana determinando si regresa la base #' con cada entrada agrupada por `tipo_prueba`. En caso `TRUE` (cada fecha @@ -73,8 +73,8 @@ #' list_name = "pruebas_diabetes" #' ) #' head(datos_covid$pruebas_diabetes) -#' -#' #Una vez hayas concluido tu trabajo no olvides desconectar +#' +#' # Una vez hayas concluido tu trabajo no olvides desconectar #' datos_covid$disconnect() #' @export diff --git a/R/plot_covid.R b/R/plot_covid.R index 1cb4f60..da9b772 100644 --- a/R/plot_covid.R +++ b/R/plot_covid.R @@ -33,18 +33,18 @@ #' @param ... (**opcional**) Parametros adicionales para [ggformula::geom_spline()] en caso de elegir #' `type="spline"` #' -#' @return Un `ggplot2` con la imagen graficada. -#' +#' @return Un `ggplot2` con la imagen graficada. +#' #' @examples #' # Para el ejemplo usaremos los datos precargados pero tu puedes #' # correr el ejemplo descargando informacion mas reciente: #' # datos_covid <- descarga_datos_abiertos() #Sugerido -#' +#' #' # Grafica de casos por entidad #' datos_covid <- datosabiertos -#' -#' #Aqui muchos aparecen en cero si usas el default de datosabiertos -#' #porque la base de datosabiertos tiene muy pocos casos +#' +#' # Aqui muchos aparecen en cero si usas el default de datosabiertos +#' # porque la base de datosabiertos tiene muy pocos casos #' datos_covid |> #' casos(list_name = "casos_for_plot") |> #' plot_covid(df_name = "casos_for_plot") @@ -59,38 +59,46 @@ #' datos_covid |> #' casos(group_by_entidad = FALSE, list_name = "spline_nacional") |> #' plot_covid(df_name = "spline_nacional", type = "spline", spar = 0.5) -#' +#' #' # Graficacion por covariables #' # el objeto devuelto es un objeto de ggplot2 al que se le puede dar formato #' datos_covid |> -#' chr(group_by_entidad = TRUE, list_name = "plot_nal", .grouping_vars = c("SEXO"), -#' entidades = c("BAJA CALIFORNIA","BAJA CALIFORNIA SUR")) |> -#' plot_covid(df_name = "plot_nal", -#' date_break_format = "1 week", -#' date_labels_format = "%d/%B/%Y", -#' df_covariates = c("SEXO","ENTIDAD_FEDERATIVA"), -#' type = "area") + -#' ggtitle("Plot nacional") -#' +#' chr( +#' group_by_entidad = TRUE, list_name = "plot_nal", .grouping_vars = c("SEXO"), +#' entidades = c("BAJA CALIFORNIA", "BAJA CALIFORNIA SUR") +#' ) |> +#' plot_covid( +#' df_name = "plot_nal", +#' date_break_format = "1 week", +#' date_labels_format = "%d/%B/%Y", +#' df_covariates = c("SEXO", "ENTIDAD_FEDERATIVA"), +#' type = "area" +#' ) + +#' ggtitle("Plot nacional") +#' #' # Puedes tambien primero editar el tibble que usaras por ejemplo poniendo #' # los nombres de los sexos #' datos_covid <- datos_covid |> -#' chr(group_by_entidad = TRUE, list_name = "plot_nal", .grouping_vars = c("SEXO"), -#' entidades = c("BAJA CALIFORNIA","BAJA CALIFORNIA SUR")) -#' +#' chr( +#' group_by_entidad = TRUE, list_name = "plot_nal", .grouping_vars = c("SEXO"), +#' entidades = c("BAJA CALIFORNIA", "BAJA CALIFORNIA SUR") +#' ) +#' #' datos_covid$plot_nal |> -#' left_join(datos_covid$dict$SEXO, by = c("SEXO" = "CLAVE")) |> -#' plot_covid(date_break_format = "1 week", -#' date_labels_format = "%d/%B/%Y", -#' df_variable = "CASE HOSPITALIZATION RATE", -#' df_covariates = c("DESCRIPCIÓN","ENTIDAD_FEDERATIVA"), -#' type = "area") + -#' ggtitle("Plot nacional") +#' left_join(datos_covid$dict$SEXO, by = c("SEXO" = "CLAVE")) |> +#' plot_covid( +#' date_break_format = "1 week", +#' date_labels_format = "%d/%B/%Y", +#' df_variable = "CASE HOSPITALIZATION RATE", +#' df_covariates = c("DESCRIPCIÓN", "ENTIDAD_FEDERATIVA"), +#' type = "area" +#' ) + +#' ggtitle("Plot nacional") #' } -#' -#' #Finalmente desconectamos +#' +#' # Finalmente desconectamos #' datos_covid$disconnect() -#' +#' #' @export plot_covid <- function(datos_covid, @@ -99,7 +107,7 @@ plot_covid <- function(datos_covid, colnames(datos_covid[df_name][[1]]), "FECHA|fecha|Fecha" ), - df_variable = NULL, + df_variable = NULL, df_covariates = c(), facet_scale = "free_y", facet_ncol = 4, @@ -113,7 +121,6 @@ plot_covid <- function(datos_covid, axis.line.x = ggplot2::element_line(color = "black"), legend.position = "none" ), ...) { - if (!requireNamespace("ggplot2", quietly = TRUE)) { cli::cli_abort( "Para graficar, por favor instala {.code ggplot2} y {.code scales} haciendo @@ -123,7 +130,7 @@ plot_covid <- function(datos_covid, if (tibble::is_tibble(datos_covid)) { datos_covid <- list("datos_covid" = datos_covid) - df_name <- "datos_covid" + df_name <- "datos_covid" } # Checamos la variable 1 diff --git a/R/positividad.R b/R/positividad.R index d637712..83f5fd4 100644 --- a/R/positividad.R +++ b/R/positividad.R @@ -19,12 +19,12 @@ #' #' @inheritParams numero_pruebas #' -#' @param remove_inconclusive (**opcional**) Si `TRUE` no considera en el denominador de la -#' positividad las pruebas cuyo resultado es inconcluso o aún no ha sido otorgado. Si `FALSE` +#' @param remove_inconclusive (**opcional**) Si `TRUE` no considera en el denominador de la +#' positividad las pruebas cuyo resultado es inconcluso o aún no ha sido otorgado. Si `FALSE` #' considera a todos. Por default es `TRUE`. #' -#' @param fill_NA (**opcional**) Regresa observaciones para todas las combinaciones de variables -#' incluyendo como `NA` donde no se observaron casos en el denominador. En caso contrario no se +#' @param fill_NA (**opcional**) Regresa observaciones para todas las combinaciones de variables +#' incluyendo como `NA` donde no se observaron casos en el denominador. En caso contrario no se #' incluyen las filas donde no se observaron casos. #' #' @importFrom rlang := @@ -94,8 +94,8 @@ #' ) #' head(datos_covid$positividad_imss_pais) #' -#' #Una vez hayas concluido tu trabajo no olvides desconectar -#' datos_covid$disconnect() +#' # Una vez hayas concluido tu trabajo no olvides desconectar +#' datos_covid$disconnect() #' @references #' #' Furuse, Y., Ko, Y. K., Ninomiya, K., Suzuki, M., & Oshitani, H. (2021). Relationship of test diff --git a/R/rt.R b/R/rt.R index 5afef92..40b8566 100644 --- a/R/rt.R +++ b/R/rt.R @@ -4,22 +4,22 @@ #' `estima_rt` Calcula el número efectivo de reproducción por fecha y entidad usando #' los metodos de [EpiEstim::estimate_R()]. Por default calcula el número efectivo de #' reproducción para cada estado. -#' -#' @details Se sugiere establecer una mínima fecha y una máxima fecha con `min_date` y -#' `max_date` para la estimación pues los intervalos seriales de omicron son distintos -#' a los de la variante delta. +#' +#' @details Se sugiere establecer una mínima fecha y una máxima fecha con `min_date` y +#' `max_date` para la estimación pues los intervalos seriales de omicron son distintos +#' a los de la variante delta. #' #' @inheritParams casos #' #' @param method (**opcional**) Metodo para estimar el RT con [EpiEstim::estimate_R()]. Por #' default se recomienda el método paramétrico de intervalo serial `parametric_si`. #' -#' @param config (**opcional**) Configuracion para la estimacion del RT usando -#' [EpiEstim::make_config()]. Por default se utiliza una media del intervalo serial +#' @param config (**opcional**) Configuracion para la estimacion del RT usando +#' [EpiEstim::make_config()]. Por default se utiliza una media del intervalo serial #' de `mean_si = 2.5` y una desviación estandar de `std_si = 1.6`. Sin embargo, como el intervalo -#' serial depende mucho de la variante se recomienda cambiarlo. +#' serial depende mucho de la variante se recomienda cambiarlo. #' -#' @param min_date (**opcional**) Mínima fecha a partir de la cual estimar el RT. +#' @param min_date (**opcional**) Mínima fecha a partir de la cual estimar el RT. #' #' @param max_date (**opcional**) Máxima fecha a partir de la cual estimar el RT. #' @@ -43,53 +43,56 @@ #' # Para el ejemplo usaremos los datos precargados pero tu puedes #' # correr el ejemplo descargando informacion mas reciente: #' # datos_covid <- descarga_datos_abiertos() #Sugerido -#' +#' #' datos_covid <- datosabiertos #' -#' # Casos a nivel nacional por estado en todos +#' # Casos a nivel nacional por estado en todos #' suppressWarnings( -#' datos_covid <- datos_covid |> estima_rt() +#' datos_covid <- datos_covid |> estima_rt() #' ) #' head(datos_covid$estima_rt) -#' +#' #' # Cambios en la fecha de estimacion siguiendo la recomendacion #' # y obtenemos todo a nivel nacional -#' datos_covid <- datos_covid |> estima_rt(min_date = as.POSIXct("2021-07-01"), -#' max_date = as.POSIXct("2021-09-01"), -#' list_name = "rt_min_max", -#' group_by_entidad = FALSE) +#' datos_covid <- datos_covid |> estima_rt( +#' min_date = as.POSIXct("2021-07-01"), +#' max_date = as.POSIXct("2021-09-01"), +#' list_name = "rt_min_max", +#' group_by_entidad = FALSE +#' ) #' head(datos_covid$rt_min_max) -#' +#' #' # Casos a nivel nacional en los confirmados -#' datos_covid <- datos_covid |> -#' estima_rt( -#' tipo_clasificacion = "Confirmados COVID", -#' group_by_entidad = FALSE, -#' list_name = "rt_confirmados" -#' ) +#' datos_covid <- datos_covid |> +#' estima_rt( +#' tipo_clasificacion = "Confirmados COVID", +#' group_by_entidad = FALSE, +#' list_name = "rt_confirmados" +#' ) #' head(datos_covid$rt_confirmados) -#' +#' #' #' # Cambios en los parametros de epiestim #' # estos parametros no tienen razon de ser mas alla de mostrar como se cambian #' \dontrun{ -#' datos_covid <- datos_covid |> -#' estima_rt(group_by_entidad = FALSE, -#' list_name = "config_rt", -#' method = "uncertain_si", #Metodo de estimacion -#' config = EpiEstim::make_config( -#' mean_si = 2.4, -#' std_si = 0.3, -#' std_mean_si = 0.2, -#' min_mean_si = 2, -#' max_mean_si = 4, -#' std_std_si = 0.1, -#' min_std_si = 0.1, -#' max_std_si = 1.0 -#' ) -#' ) -#' +#' datos_covid <- datos_covid |> +#' estima_rt( +#' group_by_entidad = FALSE, +#' list_name = "config_rt", +#' method = "uncertain_si", # Metodo de estimacion +#' config = EpiEstim::make_config( +#' mean_si = 2.4, +#' std_si = 0.3, +#' std_mean_si = 0.2, +#' min_mean_si = 2, +#' max_mean_si = 4, +#' std_std_si = 0.1, +#' min_std_si = 0.1, +#' max_std_si = 1.0 +#' ) +#' ) +#' #' head(datos_covid$config_rt) -#' +#' #' # Casos en BC, BCS en los confirmados #' datos_covid |> #' estima_rt( @@ -103,10 +106,10 @@ #' df_variable = "Mean(R)", df_covariates = "ENTIDAD_FEDERATIVA" #' ) #' } -#' +#' #' # Finalmente desconectamos #' datos_covid$disconnect() -#' +#' #' @seealso [descarga_datos_abiertos()] [numero_pruebas()] [cfr()] [chr()] #' [positividad()] [casos()] #' @@ -141,10 +144,12 @@ estima_rt <- function(datos_covid, ), tipo_paciente = c("AMBULATORIO", "HOSPITALIZADO", "NO ESPECIFICADO"), list_name = "estima_rt", - min_date = as.POSIXct("2020-01-01", tz = Sys.timezone(), - format = "%Y-%m-%d"), + min_date = as.POSIXct("2020-01-01", + tz = Sys.timezone(), + format = "%Y-%m-%d" + ), max_date = as.POSIXct(Sys.time()), - method = "parametric_si", + method = "parametric_si", config = if (requireNamespace("EpiEstim", quietly = TRUE)) { EpiEstim::make_config( list( @@ -219,20 +224,20 @@ estima_rt <- function(datos_covid, fill_zeros = TRUE, list_name = list_name, .grouping_vars = c() - )[[list_name]] - + )[[list_name]] + # Detectamos cuál es la fecha fecha_name <- stringr::str_subset(colnames(.casos), "FECHA") - col_gp <- stringr::str_subset(colnames(.casos), "FECHA|\\bn\\b", negate = TRUE) - - .casos <- .casos |> + col_gp <- stringr::str_subset(colnames(.casos), "FECHA|\\bn\\b", negate = TRUE) + + .casos <- .casos |> dplyr::filter(!!as.symbol(fecha_name) >= !!min_date) |> dplyr::filter(!!as.symbol(fecha_name) <= !!max_date) - - if (nrow(.casos) == 0){ + + if (nrow(.casos) == 0) { cli::cli_abort("No hay observaciones entre {min_date} y {max_date}") } - + if (length(col_gp) > 0) { for (col in col_gp) { @@ -248,10 +253,11 @@ estima_rt <- function(datos_covid, df_rt <- .casos |> dplyr::arrange(!!as.symbol(fecha_name)) |> dplyr::summarise( - EpiEstim::estimate_R(as.numeric(!!as.symbol("n")), method = method, config = config, ...)$R) |> + EpiEstim::estimate_R(as.numeric(!!as.symbol("n")), method = method, config = config, ...)$R + ) |> dplyr::ungroup() |> dplyr::mutate(!!as.symbol(paste0(fecha_name, "_start")) := mfec$min[1] + lubridate::days(!!as.symbol("t_start"))) |> - dplyr::mutate(!!as.symbol(paste0(fecha_name, "_end")) := mfec$min[1] + lubridate::days(!!as.symbol("t_end"))) |> + dplyr::mutate(!!as.symbol(paste0(fecha_name, "_end")) := mfec$min[1] + lubridate::days(!!as.symbol("t_end"))) |> dplyr::mutate(!!as.symbol(fecha_name) := mfec$min[1] + lubridate::days((!!as.symbol("t_start") + !!as.symbol("t_end")) / 2)) df_rt <- list(df_rt)