Utilizando la información brindada por la Secretaria de Salud Federal sobre los casos de COVID-19 detectados en la República Mexicana, y considerando solamente los casos positivos (verificar que la información que se obtenga de la base de datos sea igual a la reportada diariamente por dicha secretaría), obtener lo siguiente:
Primero, filtré la base de datos de todos los estados para quedarme solo con los datos asociados a mi estado. Después con ese filtrado creé un archivo .csv que es con el que trabajé durante todo el ejercicio. Paso 1, cargué la base de datos del estado que escogí (Coahuila) y todas las paqueterías que utilicé a lo largo del documento.
list.of.packages <- c("tidyverse", "lubridate", "dplyr", "ggplot2", "readxl", "RColorBrewer", "leaflet", "htmltools", "kableExtra", "plotly", "rgdal")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
lapply(list.of.packages, require, character.only = TRUE)## [[1]]
## [1] TRUE
##
## [[2]]
## [1] TRUE
##
## [[3]]
## [1] TRUE
##
## [[4]]
## [1] TRUE
##
## [[5]]
## [1] TRUE
##
## [[6]]
## [1] TRUE
##
## [[7]]
## [1] TRUE
##
## [[8]]
## [1] TRUE
##
## [[9]]
## [1] TRUE
##
## [[10]]
## [1] TRUE
##
## [[11]]
## [1] TRUE
Eligiendo un estado de la república de residencia del paciente que tenga más de 20 municipios, obtener (tablas):
Para este ejercicio escogí el estado de Coahuila. Primero, cargo la base de datos. Como la base de datos es muy grande, filtré solo los datos pertenecientes al estado de Coahuila con la paquetería “dyplr”, usando la función “filter”.
COAHUILA
(5%) Porcentaje de defunciones por municipio (total de defunciones / total de casos positivos).
Para esta pregunta, primero, tuve que identificar los casos positivos. Leyendo las descripciones en el catálogo de datos de covid, decidí quedarme con aquellos que en la clasificación final tenían valores: 1, 2 o 3. Esos 3 valores corresponden a los únicos casos confirmados. Con eso en mente, agregué otra columna a la base de datos, si en la columna de clasificación había un 1, 2 o 3; entonces, en la nueva columna le pedí a R que me pusiera un 1 para poder contar al total de positivos. Por otro lado, para obtener el número de defunciones decidí agregar otra columna. Para llenar esa columna usé la información de “FECHA_DEF”, si esa columna tenía el dato de “9999-99-99” en la nueva columna le pedí a R que me pusiera 0, de lo contrario 1. Porque quería decir que si había fecha y, por lo tanto, si había fallecido el paciente. Por último, hice una tercera columna donde me dijera si el paciente que falleció había resultado positivo, ya que me di cuenta que había algunos registros de defunción con casos negativos a COVID. Con la columna de positivos y la de defunciones positivos pude hacer el conteo por municipio. Dividiendo el total de defunciones entre el total de positivos obtengo la proporción. Finalmente, utilicé la función “merge” para nombrar a los municipios con la base de datos del catálogo de INEGI.
datos_coahuila$def<-ifelse(datos_coahuila$FECHA_DEF=="9999-99-99", 0, 1)
datos_coahuila$pos<-ifelse(datos_coahuila$CLASIFICACION_FINAL %in% c(1,2,3), 1,0)
datos_coahuila$def_pos<-ifelse(datos_coahuila$def+datos_coahuila$pos==2,1,0)
coah_mun<-merge(x=datos_coahuila, y=mun, by.x="MUNICIPIO_RES", by.y="mun", sort =FALSE)
TablaDef<-aggregate(cbind(as.numeric(def_pos),as.numeric(pos))~nombre,data=coah_mun, FUN=sum)
TablaDef$Prop<-round((TablaDef$V1/TablaDef$V2)*100, 2)
write.csv(TablaDef, file="def_coahuila.csv")
colnames(TablaDef)<-c("Municipio", "Total de Defunciones", "Total de Positivos", "Proporcion")
fixed_header = list(enabled = T, background = "pink")
kbl(TablaDef, caption = "Porcentaje de Defunciones por Municipio") %>%
kable_paper("hover",bootstrap_options = "striped", full_width = F, font_size=10, fixed_thead = T, html_font= "Cambria", position = "center")| Municipio | Total de Defunciones | Total de Positivos | Proporcion |
|---|---|---|---|
| Abasolo | 0 | 2 | 0.00 |
| Acuña | 28 | 406 | 6.90 |
| Allende | 8 | 125 | 6.40 |
| Arteaga | 4 | 51 | 7.84 |
| Candela | 1 | 6 | 16.67 |
| Castaños | 12 | 107 | 11.21 |
| Cuatro Ciénegas | 2 | 197 | 1.02 |
| Escobedo | 1 | 6 | 16.67 |
| Francisco I. Madero | 26 | 267 | 9.74 |
| Frontera | 48 | 466 | 10.30 |
| General Cepeda | 2 | 48 | 4.17 |
| Guerrero | 1 | 13 | 7.69 |
| Hidalgo | 0 | 6 | 0.00 |
| Jiménez | 1 | 2 | 50.00 |
| Juárez | 0 | 1 | 0.00 |
| Lamadrid | 3 | 24 | 12.50 |
| Matamoros | 31 | 282 | 10.99 |
| Monclova | 248 | 2480 | 10.00 |
| Morelos | 2 | 17 | 11.76 |
| Múzquiz | 28 | 474 | 5.91 |
| Nadadores | 4 | 46 | 8.70 |
| Nava | 10 | 190 | 5.26 |
| Ocampo | 1 | 21 | 4.76 |
| Parras | 12 | 255 | 4.71 |
| Piedras Negras | 98 | 1353 | 7.24 |
| Progreso | 0 | 4 | 0.00 |
| Ramos Arizpe | 23 | 134 | 17.16 |
| Sabinas | 11 | 468 | 2.35 |
| Sacramento | 3 | 54 | 5.56 |
| Saltillo | 425 | 4352 | 9.77 |
| San Buenaventura | 12 | 121 | 9.92 |
| San Juan de Sabinas | 25 | 413 | 6.05 |
| San Pedro | 20 | 265 | 7.55 |
| Sierra Mojada | 3 | 8 | 37.50 |
| Torreón | 319 | 4551 | 7.01 |
| Viesca | 0 | 14 | 0.00 |
| Villa Unión | 1 | 85 | 1.18 |
| Zaragoza | 3 | 37 | 8.11 |
(5%) Porcentaje de casos positivos con al menos una comorbilidad a nivel municipal.
Para esta pregunta igual utilicé la información que ya tenía del total de positivos. Para el caso de la comorbilidad, dado que dice “al menos una”, entonces si no tuviera ninguna el total de las 10 columnas que indican alguna comorbilidad sumaría en total 20 (2 por cada negativo en cada opción de comorbilidad). Con este análisis en mente, decidí agregar dos nuevas columnas, la primera, si el resultado de la suma era diferente a 20, quería decir que si existe una comorbilidad y le pedí a R que en ese caso me pusiera 1, en caso contrario 0. En la segunda, que me identificara si esa comorbilidad se asociaba a un caso positivo. Al final, con esas nuevas columnas pude hacer un conteo por municipio y dividiendo el total de comorbilidades entre el total de positivos, con eso obtuve la proporción.
coah_mun$co_mor<-ifelse(coah_mun$DIABETES+coah_mun$EPOC+coah_mun$ASMA+coah_mun$INMUSUPR+coah_mun$HIPERTENSION+coah_mun$OTRA_COM+coah_mun$CARDIOVASCULAR+coah_mun$OBESIDAD+coah_mun$RENAL_CRONICA+coah_mun$TABAQUISMO !=20, 1, 0)
coah_mun$co_mor_pos<-ifelse(coah_mun$pos+coah_mun$co_mor==2,1,0)
TablaPos<-aggregate(cbind(as.numeric(co_mor_pos),as.numeric(pos))~nombre,data=coah_mun, FUN=sum)
TablaPos$Prop<-round((TablaPos$V1/TablaPos$V2)*100, 2)
colnames(TablaPos)<-c("Municipio", "Total de Personas con Comorbilidades", "Total de Positivos", "Proporción")
fixed_header = list(enabled = T, background = "pink")
kbl(TablaPos, caption = "Total de Personas con Comorbilidades por Municipio") %>%
kable_paper("hover",bootstrap_options = "striped", full_width = F, font_size=10, fixed_thead = T, html_font= "Cambria", position = "center")| Municipio | Total de Personas con Comorbilidades | Total de Positivos | Proporción |
|---|---|---|---|
| Abasolo | 0 | 2 | 0.00 |
| Acuña | 184 | 406 | 45.32 |
| Allende | 56 | 125 | 44.80 |
| Arteaga | 16 | 51 | 31.37 |
| Candela | 1 | 6 | 16.67 |
| Castaños | 44 | 107 | 41.12 |
| Cuatro Ciénegas | 75 | 197 | 38.07 |
| Escobedo | 2 | 6 | 33.33 |
| Francisco I. Madero | 88 | 267 | 32.96 |
| Frontera | 208 | 466 | 44.64 |
| General Cepeda | 18 | 48 | 37.50 |
| Guerrero | 7 | 13 | 53.85 |
| Hidalgo | 3 | 6 | 50.00 |
| Jiménez | 2 | 2 | 100.00 |
| Juárez | 1 | 1 | 100.00 |
| Lamadrid | 8 | 24 | 33.33 |
| Matamoros | 118 | 282 | 41.84 |
| Monclova | 1078 | 2480 | 43.47 |
| Morelos | 4 | 17 | 23.53 |
| Múzquiz | 202 | 474 | 42.62 |
| Nadadores | 17 | 46 | 36.96 |
| Nava | 61 | 190 | 32.11 |
| Ocampo | 8 | 21 | 38.10 |
| Parras | 58 | 255 | 22.75 |
| Piedras Negras | 314 | 1353 | 23.21 |
| Progreso | 2 | 4 | 50.00 |
| Ramos Arizpe | 52 | 134 | 38.81 |
| Sabinas | 228 | 468 | 48.72 |
| Sacramento | 21 | 54 | 38.89 |
| Saltillo | 1496 | 4352 | 34.38 |
| San Buenaventura | 56 | 121 | 46.28 |
| San Juan de Sabinas | 162 | 413 | 39.23 |
| San Pedro | 69 | 265 | 26.04 |
| Sierra Mojada | 4 | 8 | 50.00 |
| Torreón | 1201 | 4551 | 26.39 |
| Viesca | 8 | 14 | 57.14 |
| Villa Unión | 30 | 85 | 35.29 |
| Zaragoza | 8 | 37 | 21.62 |
(10%) Total de casos positivos acumulados por día a nivel estatal.
Para esta pregunta ya no me interesaba hacer la división por municipios, sino el acumulado a nivel estatal. Por lo tanto, primero, transformé la columna de “FECHA_INGRESO” con “as.Date” de la paquetería “lubridate” para poder ordernar cronológicamente el acumulado de pacientes. Después, con la información de casos positivos que ya tenía en los incisos anteriores la asocié a los días para dividirlos en lugar de por municipios por días. Al final agregué una nueva columna a mi tabla para hacer ahí la suma de acumulados de los casos positivos a nivel estatal.
coah_mun$dia_acumulados<- as.Date(coah_mun$FECHA_INGRESO, format="%Y-%m-%d")
Tabla_Pos_Est<-aggregate(pos~dia_acumulados,data=coah_mun, FUN=sum)
Tabla_Pos_Est$Acum<-cumsum(Tabla_Pos_Est$pos)
colnames(Tabla_Pos_Est)<-c("Fecha_Ingreso", "Total de Positivos", "Total_Acumulados")
fixed_header = list(enabled = T, background = "pink")
kbl(Tabla_Pos_Est, caption = "Total de Casos Positivos Acumulados por Día a Nivel Estatal") %>%
kable_paper("hover",bootstrap_options = "striped", full_width = F, font_size=10, fixed_thead = T, html_font= "Cambria", position = "center")| Fecha_Ingreso | Total de Positivos | Total_Acumulados |
|---|---|---|
| 2020-01-30 | 0 | 0 |
| 2020-03-23 | 0 | 0 |
| 2020-05-28 | 1 | 1 |
| 2020-06-03 | 0 | 1 |
| 2020-06-05 | 0 | 1 |
| 2020-06-11 | 0 | 1 |
| 2020-06-13 | 0 | 1 |
| 2020-06-18 | 0 | 1 |
| 2020-06-22 | 0 | 1 |
| 2020-06-29 | 1 | 2 |
| 2020-06-30 | 1 | 3 |
| 2020-07-01 | 2 | 5 |
| 2020-07-02 | 2 | 7 |
| 2020-07-03 | 2 | 9 |
| 2020-07-04 | 1 | 10 |
| 2020-07-05 | 2 | 12 |
| 2020-07-06 | 2 | 14 |
| 2020-07-07 | 1 | 15 |
| 2020-07-08 | 1 | 16 |
| 2020-07-10 | 1 | 17 |
| 2020-07-11 | 0 | 17 |
| 2020-07-12 | 0 | 17 |
| 2020-07-13 | 0 | 17 |
| 2020-07-14 | 0 | 17 |
| 2020-07-15 | 0 | 17 |
| 2020-07-16 | 0 | 17 |
| 2020-07-17 | 0 | 17 |
| 2020-07-18 | 0 | 17 |
| 2020-07-19 | 0 | 17 |
| 2020-07-20 | 0 | 17 |
| 2020-07-21 | 0 | 17 |
| 2020-07-22 | 2 | 19 |
| 2020-07-23 | 3 | 22 |
| 2020-07-24 | 0 | 22 |
| 2020-07-25 | 1 | 23 |
| 2020-07-26 | 1 | 24 |
| 2020-07-27 | 3 | 27 |
| 2020-07-28 | 3 | 30 |
| 2020-07-29 | 2 | 32 |
| 2020-07-30 | 4 | 36 |
| 2020-07-31 | 2 | 38 |
| 2020-08-01 | 3 | 41 |
| 2020-08-02 | 1 | 42 |
| 2020-08-03 | 6 | 48 |
| 2020-08-04 | 4 | 52 |
| 2020-08-05 | 3 | 55 |
| 2020-08-06 | 5 | 60 |
| 2020-08-07 | 7 | 67 |
| 2020-08-08 | 5 | 72 |
| 2020-08-09 | 2 | 74 |
| 2020-08-10 | 19 | 93 |
| 2020-08-11 | 21 | 114 |
| 2020-08-12 | 25 | 139 |
| 2020-08-13 | 41 | 180 |
| 2020-08-14 | 75 | 255 |
| 2020-08-15 | 182 | 437 |
| 2020-08-16 | 136 | 573 |
| 2020-08-17 | 287 | 860 |
| 2020-08-18 | 295 | 1155 |
| 2020-08-19 | 315 | 1470 |
| 2020-08-20 | 300 | 1770 |
| 2020-08-21 | 396 | 2166 |
| 2020-08-22 | 157 | 2323 |
| 2020-08-23 | 103 | 2426 |
| 2020-08-24 | 317 | 2743 |
| 2020-08-25 | 276 | 3019 |
| 2020-08-26 | 333 | 3352 |
| 2020-08-27 | 269 | 3621 |
| 2020-08-28 | 256 | 3877 |
| 2020-08-29 | 127 | 4004 |
| 2020-08-30 | 54 | 4058 |
| 2020-08-31 | 234 | 4292 |
| 2020-09-01 | 237 | 4529 |
| 2020-09-02 | 202 | 4731 |
| 2020-09-03 | 186 | 4917 |
| 2020-09-04 | 191 | 5108 |
| 2020-09-05 | 96 | 5204 |
| 2020-09-06 | 96 | 5300 |
| 2020-09-07 | 196 | 5496 |
| 2020-09-08 | 199 | 5695 |
| 2020-09-09 | 163 | 5858 |
| 2020-09-10 | 153 | 6011 |
| 2020-09-11 | 137 | 6148 |
| 2020-09-12 | 73 | 6221 |
| 2020-09-13 | 69 | 6290 |
| 2020-09-14 | 187 | 6477 |
| 2020-09-15 | 122 | 6599 |
| 2020-09-16 | 100 | 6699 |
| 2020-09-17 | 198 | 6897 |
| 2020-09-18 | 151 | 7048 |
| 2020-09-19 | 87 | 7135 |
| 2020-09-20 | 47 | 7182 |
| 2020-09-21 | 212 | 7394 |
| 2020-09-22 | 181 | 7575 |
| 2020-09-23 | 175 | 7750 |
| 2020-09-24 | 167 | 7917 |
| 2020-09-25 | 164 | 8081 |
| 2020-09-26 | 125 | 8206 |
| 2020-09-27 | 64 | 8270 |
| 2020-09-28 | 191 | 8461 |
| 2020-09-29 | 243 | 8704 |
| 2020-09-30 | 221 | 8925 |
| 2020-10-01 | 196 | 9121 |
| 2020-10-02 | 200 | 9321 |
| 2020-10-03 | 127 | 9448 |
| 2020-10-04 | 106 | 9554 |
| 2020-10-05 | 257 | 9811 |
| 2020-10-06 | 322 | 10133 |
| 2020-10-07 | 246 | 10379 |
| 2020-10-08 | 236 | 10615 |
| 2020-10-09 | 250 | 10865 |
| 2020-10-10 | 159 | 11024 |
| 2020-10-11 | 106 | 11130 |
| 2020-10-12 | 319 | 11449 |
| 2020-10-13 | 384 | 11833 |
| 2020-10-14 | 275 | 12108 |
| 2020-10-15 | 297 | 12405 |
| 2020-10-16 | 276 | 12681 |
| 2020-10-17 | 176 | 12857 |
| 2020-10-18 | 164 | 13021 |
| 2020-10-19 | 403 | 13424 |
| 2020-10-20 | 431 | 13855 |
| 2020-10-21 | 408 | 14263 |
| 2020-10-22 | 417 | 14680 |
| 2020-10-23 | 403 | 15083 |
| 2020-10-24 | 232 | 15315 |
| 2020-10-25 | 167 | 15482 |
| 2020-10-26 | 382 | 15864 |
| 2020-10-27 | 363 | 16227 |
| 2020-10-28 | 327 | 16554 |
| 2020-10-29 | 316 | 16870 |
| 2020-10-30 | 287 | 17157 |
| 2020-10-31 | 142 | 17299 |
| 2020-11-01 | 43 | 17342 |
| 2020-11-02 | 1 | 17343 |
| 2020-11-03 | 1 | 17344 |
| 2020-11-05 | 1 | 17345 |
| 2020-11-07 | 1 | 17346 |
| 2020-11-09 | 1 | 17347 |
| 2020-11-13 | 1 | 17348 |
| 2020-11-27 | 0 | 17348 |
| 2021-01-07 | 1 | 17349 |
| 2021-01-12 | 0 | 17349 |
| 2021-01-26 | 1 | 17350 |
| 2021-03-19 | 0 | 17350 |
| 2021-04-06 | 0 | 17350 |
| 2021-05-25 | 0 | 17350 |
| 2021-07-17 | 0 | 17350 |
| 2021-08-10 | 1 | 17351 |
| 2021-09-14 | 0 | 17351 |
| 2021-10-04 | 0 | 17351 |
| 2021-10-15 | 0 | 17351 |
(10%) Total acumulado de defunciones por día a nivel estatal.
Para esta pregunta tampoco me interesaba hacer la división por municipios, sino el acumulado a nivel estatal. Por lo tanto, uso solo las filas donde si hay fecha de defunción. También usé el filtrado de positivos porque había ciertas defunciones asociadas a casos no confirmados como positivos.
coahuila_covid_def$dia_defunciones<- as.Date(coahuila_covid_def$FECHA_DEF, format="%Y-%m-%d")
coahuila_covid_def$pos<-ifelse(coahuila_covid_def$CLASIFICACION_FINAL %in% c(1,2,3), 1,0)
Tabla_Def_Est<-aggregate(pos~dia_defunciones,data=coahuila_covid_def, FUN=sum)
Tabla_Def_Est$Acum_def<-cumsum(Tabla_Def_Est$pos)
colnames(Tabla_Def_Est)<-c("Fecha de Defunción", "Total de Defunciones", "Total de Acumulados")
fixed_header = list(enabled = T, background = "pink")
kbl(Tabla_Def_Est, caption = "Total de Defunciones Acumuladas por Día a Nivel Estatal") %>%
kable_paper("hover",bootstrap_options = "striped", full_width = F, font_size=10, fixed_thead = T, html_font= "Cambria", position = "center")| Fecha de Defunción | Total de Defunciones | Total de Acumulados |
|---|---|---|
| 2020-03-23 | 0 | 0 |
| 2020-06-10 | 0 | 0 |
| 2020-06-11 | 0 | 0 |
| 2020-07-03 | 0 | 0 |
| 2020-07-04 | 0 | 0 |
| 2020-07-12 | 1 | 1 |
| 2020-07-14 | 0 | 1 |
| 2020-07-15 | 0 | 1 |
| 2020-07-16 | 0 | 1 |
| 2020-07-17 | 0 | 1 |
| 2020-07-18 | 0 | 1 |
| 2020-07-20 | 0 | 1 |
| 2020-07-21 | 0 | 1 |
| 2020-07-23 | 0 | 1 |
| 2020-07-25 | 2 | 3 |
| 2020-07-26 | 0 | 3 |
| 2020-07-27 | 0 | 3 |
| 2020-07-28 | 0 | 3 |
| 2020-08-01 | 2 | 5 |
| 2020-08-05 | 0 | 5 |
| 2020-08-06 | 2 | 7 |
| 2020-08-07 | 1 | 8 |
| 2020-08-08 | 1 | 9 |
| 2020-08-09 | 2 | 11 |
| 2020-08-10 | 0 | 11 |
| 2020-08-11 | 0 | 11 |
| 2020-08-12 | 1 | 12 |
| 2020-08-13 | 1 | 13 |
| 2020-08-14 | 1 | 14 |
| 2020-08-15 | 3 | 17 |
| 2020-08-16 | 7 | 24 |
| 2020-08-17 | 9 | 33 |
| 2020-08-18 | 6 | 39 |
| 2020-08-19 | 11 | 50 |
| 2020-08-20 | 8 | 58 |
| 2020-08-21 | 10 | 68 |
| 2020-08-22 | 11 | 79 |
| 2020-08-23 | 10 | 89 |
| 2020-08-24 | 11 | 100 |
| 2020-08-25 | 8 | 108 |
| 2020-08-26 | 13 | 121 |
| 2020-08-27 | 10 | 131 |
| 2020-08-28 | 23 | 154 |
| 2020-08-29 | 14 | 168 |
| 2020-08-30 | 14 | 182 |
| 2020-08-31 | 27 | 209 |
| 2020-09-01 | 18 | 227 |
| 2020-09-02 | 19 | 246 |
| 2020-09-03 | 14 | 260 |
| 2020-09-04 | 18 | 278 |
| 2020-09-05 | 13 | 291 |
| 2020-09-06 | 12 | 303 |
| 2020-09-07 | 19 | 322 |
| 2020-09-08 | 14 | 336 |
| 2020-09-09 | 17 | 353 |
| 2020-09-10 | 13 | 366 |
| 2020-09-11 | 24 | 390 |
| 2020-09-12 | 19 | 409 |
| 2020-09-13 | 13 | 422 |
| 2020-09-14 | 20 | 442 |
| 2020-09-15 | 13 | 455 |
| 2020-09-16 | 10 | 465 |
| 2020-09-17 | 13 | 478 |
| 2020-09-18 | 7 | 485 |
| 2020-09-19 | 17 | 502 |
| 2020-09-20 | 14 | 516 |
| 2020-09-21 | 10 | 526 |
| 2020-09-22 | 18 | 544 |
| 2020-09-23 | 10 | 554 |
| 2020-09-24 | 14 | 568 |
| 2020-09-25 | 17 | 585 |
| 2020-09-26 | 10 | 595 |
| 2020-09-27 | 12 | 607 |
| 2020-09-28 | 17 | 624 |
| 2020-09-29 | 8 | 632 |
| 2020-09-30 | 9 | 641 |
| 2020-10-01 | 11 | 652 |
| 2020-10-02 | 7 | 659 |
| 2020-10-03 | 21 | 680 |
| 2020-10-04 | 7 | 687 |
| 2020-10-05 | 11 | 698 |
| 2020-10-06 | 11 | 709 |
| 2020-10-07 | 9 | 718 |
| 2020-10-08 | 12 | 730 |
| 2020-10-09 | 14 | 744 |
| 2020-10-10 | 12 | 756 |
| 2020-10-11 | 12 | 768 |
| 2020-10-12 | 19 | 787 |
| 2020-10-13 | 10 | 797 |
| 2020-10-14 | 19 | 816 |
| 2020-10-15 | 19 | 835 |
| 2020-10-16 | 14 | 849 |
| 2020-10-17 | 22 | 871 |
| 2020-10-18 | 18 | 889 |
| 2020-10-19 | 19 | 908 |
| 2020-10-20 | 23 | 931 |
| 2020-10-21 | 23 | 954 |
| 2020-10-22 | 22 | 976 |
| 2020-10-23 | 25 | 1001 |
| 2020-10-24 | 25 | 1026 |
| 2020-10-25 | 31 | 1057 |
| 2020-10-26 | 35 | 1092 |
| 2020-10-27 | 37 | 1129 |
| 2020-10-28 | 23 | 1152 |
| 2020-10-29 | 25 | 1177 |
| 2020-10-30 | 26 | 1203 |
| 2020-10-31 | 24 | 1227 |
| 2020-11-01 | 24 | 1251 |
| 2020-11-02 | 30 | 1281 |
| 2020-11-03 | 17 | 1298 |
| 2020-11-04 | 16 | 1314 |
| 2020-11-05 | 19 | 1333 |
| 2020-11-06 | 14 | 1347 |
| 2020-11-07 | 9 | 1356 |
| 2020-11-08 | 9 | 1365 |
| 2020-11-09 | 12 | 1377 |
| 2020-11-10 | 10 | 1387 |
| 2020-11-11 | 6 | 1393 |
| 2020-11-12 | 11 | 1404 |
| 2020-11-13 | 4 | 1408 |
| 2020-11-14 | 2 | 1410 |
| 2020-11-15 | 2 | 1412 |
| 2020-11-16 | 0 | 1412 |
| 2020-11-17 | 4 | 1416 |
| 2020-11-18 | 2 | 1418 |
| 2020-11-19 | 1 | 1419 |
| 2020-11-22 | 2 | 1421 |
| 2020-11-23 | 1 | 1422 |
| 2020-11-24 | 2 | 1424 |
| 2020-11-25 | 1 | 1425 |
| 2020-11-26 | 0 | 1425 |
| 2020-11-27 | 0 | 1425 |
| 2020-12-10 | 0 | 1425 |
| 2020-12-11 | 1 | 1426 |
| 2020-12-12 | 0 | 1426 |
| 2021-01-06 | 1 | 1427 |
| 2021-01-13 | 0 | 1427 |
(10%) Porcentaje de mujeres, a nivel municipal, que representan un caso positivo (Número de mujeres positivas en el municipio / Número de casos positivos en ese municipio).
Aquí si usé la base de datos con la división por municipios. Para esta pregunta agregué dos columnas, la primera para contar al total de mujeres y la segunda para filtrar cuáles de esas eran casos positivos. Ya con esa segunda columna pude hacer una tabla de los casos positivos de mujeres y casos positivos totales. De ahí saqué el porcentaje de mujeres que representan un caso positivo.
coah_mun$mujer<-ifelse(coah_mun$SEXO ==1, 1, 0)
coah_mun$mujer_pos<-ifelse(coah_mun$mujer+coah_mun$pos == 2, 1, 0)
TablaMujer<-aggregate(cbind(as.numeric(mujer_pos),as.numeric(pos))~nombre,data=coah_mun, FUN=sum)
TablaMujer$Prop<-round((TablaMujer$V1/TablaMujer$V2)*100, 2)
colnames(TablaMujer)<-c("Municipio", "Total de Mujeres", "Total de Positivos", "Proporción")
fixed_header = list(enabled = T, background = "pink")
kbl(TablaMujer, caption = "Porcentaje de Mujeres que Representan un Caso Positivo por Municipio") %>%
kable_paper("hover",bootstrap_options = "striped", full_width = F, font_size=10, fixed_thead = T, html_font= "Cambria", position = "center")| Municipio | Total de Mujeres | Total de Positivos | Proporción |
|---|---|---|---|
| Abasolo | 2 | 2 | 100.00 |
| Acuña | 214 | 406 | 52.71 |
| Allende | 67 | 125 | 53.60 |
| Arteaga | 23 | 51 | 45.10 |
| Candela | 0 | 6 | 0.00 |
| Castaños | 53 | 107 | 49.53 |
| Cuatro Ciénegas | 106 | 197 | 53.81 |
| Escobedo | 3 | 6 | 50.00 |
| Francisco I. Madero | 136 | 267 | 50.94 |
| Frontera | 230 | 466 | 49.36 |
| General Cepeda | 22 | 48 | 45.83 |
| Guerrero | 7 | 13 | 53.85 |
| Hidalgo | 5 | 6 | 83.33 |
| Jiménez | 1 | 2 | 50.00 |
| Juárez | 0 | 1 | 0.00 |
| Lamadrid | 13 | 24 | 54.17 |
| Matamoros | 163 | 282 | 57.80 |
| Monclova | 1233 | 2480 | 49.72 |
| Morelos | 9 | 17 | 52.94 |
| Múzquiz | 277 | 474 | 58.44 |
| Nadadores | 21 | 46 | 45.65 |
| Nava | 102 | 190 | 53.68 |
| Ocampo | 11 | 21 | 52.38 |
| Parras | 144 | 255 | 56.47 |
| Piedras Negras | 696 | 1353 | 51.44 |
| Progreso | 4 | 4 | 100.00 |
| Ramos Arizpe | 54 | 134 | 40.30 |
| Sabinas | 221 | 468 | 47.22 |
| Sacramento | 24 | 54 | 44.44 |
| Saltillo | 2255 | 4352 | 51.82 |
| San Buenaventura | 66 | 121 | 54.55 |
| San Juan de Sabinas | 228 | 413 | 55.21 |
| San Pedro | 153 | 265 | 57.74 |
| Sierra Mojada | 5 | 8 | 62.50 |
| Torreón | 2450 | 4551 | 53.83 |
| Viesca | 7 | 14 | 50.00 |
| Villa Unión | 38 | 85 | 44.71 |
| Zaragoza | 17 | 37 | 45.95 |
(10%) Gráfico de barras de los 10 municipios con mayor porcentaje de defunciones. Para esta pregunta, primero ordené los 10 municipios con mayor porcentaje de defunciones. Después con la paquetería “plotly” hice el gráfico de barras para mostrar a los 10 municipios con mayor porcentaje de defunciones en el estado de Coahuila.
top_def<-top_n(TablaDef, 10, Proporcion)%>% arrange(desc(Proporcion))
colnames(top_def)<-c("Municipio", "Total_Defunciones", "Total_Positivos", "Proporcion")
fixed_header = list(enabled = T, background = "pink")
kbl(top_def, caption = "10 Municipios con Mayor Número de Defunciones") %>%
kable_paper("hover",bootstrap_options = "striped", full_width = F, font_size=10, fixed_thead = T, html_font= "Cambria", position = "center")| Municipio | Total_Defunciones | Total_Positivos | Proporcion |
|---|---|---|---|
| Jiménez | 1 | 2 | 50.00 |
| Sierra Mojada | 3 | 8 | 37.50 |
| Ramos Arizpe | 23 | 134 | 17.16 |
| Candela | 1 | 6 | 16.67 |
| Escobedo | 1 | 6 | 16.67 |
| Lamadrid | 3 | 24 | 12.50 |
| Morelos | 2 | 17 | 11.76 |
| Castaños | 12 | 107 | 11.21 |
| Matamoros | 31 | 282 | 10.99 |
| Frontera | 48 | 466 | 10.30 |
def_top<-cbind(top_def$Municipio, top_def$Proporcion)
def_top_<-as.data.frame(def_top)
colnames(def_top_)<-c("Municipio", "Porcentaje")
graf_def<-plot_ly(data=def_top_, x=~Municipio, y=~Porcentaje, type="bar", color = rainbow(10))
graf_def<- graf_def %>% layout (showlegend=FALSE)
graf_def(15%) Gráfico de barras de los 10 municipios con mayor número de casos positivos detectados, divido por hombres y por mujeres. Primero, cargué el catálogo de sexos del inegi para poder unir mi base de datos de los municipios de Coahuila con el indicador por sexo. Con eso hice una nueva tabla donde tuviese los datos de los 10 municipios con mayor número de casos positivos acumulados divididos en dos columnas: hombres y mujeres.
cat_sex<-read_excel("201128 Catalogos.xlsx",sheet = "Catálogo SEXO")
coah_mun_sex<-merge(x=coah_mun, y=cat_sex, by.x = "SEXO", by.y = "CLAVE", sort = FALSE)
coah_mun_sex$hombre<-ifelse(coah_mun_sex$SEXO == 2, 1, 0)
coah_mun_sex$hombre_pos<-ifelse(coah_mun_sex$hombre+coah_mun_sex$pos == 2, 1, 0)
tabla_pos_hm<-aggregate(cbind(coah_mun_sex$hombre_pos, coah_mun_sex$mujer_pos)~coah_mun_sex$nombre, FUN = sum)
tabla_pos_hm$total<-tabla_pos_hm$V1+tabla_pos_hm$V2
tabla_pos_hm<-as.data.frame.array(tabla_pos_hm)
top_hm<-top_n(tabla_pos_hm, 10, total)%>% arrange(desc(total))
colnames(top_hm)<-c("Municipio", "Hombres", "Mujeres", "Total")
fixed_header = list(enabled = T, background = "pink")
kbl(top_hm, caption = "10 Municipios con Mayor Número de Casos Positivos (divididos por hombres y mujeres)") %>%
kable_paper("hover",bootstrap_options = "striped", full_width = F, font_size=10, fixed_thead = T, html_font= "Cambria", position = "center")| Municipio | Hombres | Mujeres | Total | |
|---|---|---|---|---|
| 35 | Torreón | 2101 | 2450 | 4551 |
| 30 | Saltillo | 2097 | 2255 | 4352 |
| 18 | Monclova | 1247 | 1233 | 2480 |
| 25 | Piedras Negras | 657 | 696 | 1353 |
| 20 | Múzquiz | 197 | 277 | 474 |
| 28 | Sabinas | 247 | 221 | 468 |
| 10 | Frontera | 236 | 230 | 466 |
| 32 | San Juan de Sabinas | 185 | 228 | 413 |
| 2 | Acuña | 192 | 214 | 406 |
| 17 | Matamoros | 119 | 163 | 282 |
graf_sex<-plot_ly(data=top_hm, x=~Municipio, y=~Mujeres, type="bar", name="Mujeres")
graf_sex<- graf_sex %>% add_bars(data = top_hm, x=~Municipio, y=~Hombres, name="Hombres")
graf_sex<- graf_sex %>% layout (barmode="stack", legend=list(title=list(text='<b> sexo </b>')), title="10 municipios con mayor número de casos positivos detectados")
graf_sex(15%) Gráfico de líneas que representa el número acumulado de defunciones a nivel estatal por día. Al desplazar el cursor sobre la línea, se debe de mostrar la cantidad representada en la línea.
acum_graf<-plot_ly(data=Tabla_Pos_Est, x=~Fecha_Ingreso, y=~Total_Acumulados, mode="lines", marker = list(size = 15, color = colorRampPalette(brewer.pal(10,"Spectral"))(200))) %>%
layout(title = "Número acumulado de defunciones a nivel estatal por día", xaxis = list(title = "Fecha"), yaxis = list(title = "casos acumulados"))
acum_graf(20%) Mapa que muestre la distribución espacial, por municipio, del porcentaje de defunciones. Utilizar el corte por cuantiles. Al situar el cursor sobre el municipio, se debe de desplegar el porcentaje de defunciones y el total de casos de defunciones del correspondiente.
Importo el mapa desde “QGIS” al ambiente de R.
plot(mapa_coahuila)Utilizando la función “merge” uno la base de datos de defunciones con el mapa por medio de las variables “CVE_MUN” y “CVE”. Creo el corte por cuantiles del porcentaje de defunciones y creo la paleta de colores.
tabla_coahuila<-merge(x=mapa_coahuila@data, y=def_coahuila, by.x="CVE_MUN", by.y="CVE", sort =FALSE)
mapa_coahuila@data$PorDef<-tabla_coahuila$Proporción
mapa_coahuila@data$Total<-tabla_coahuila$`Total de Defunciones`
cuantil_coahuila<-cut(mapa_coahuila@data$PorDef,5)
cortes_cuantiles_coah<- c(0, 10, 20, 40, Inf)
colores_<-brewer.pal(4, "BuPu")
colores <- colorBin( palette="BuPu", domain=mapa_coahuila@data$PorDef, na.color="black", bins=cortes_cuantiles_coah)
textos_<- paste("Mun: ", def_coahuila$Municipio,
"-% de defunciones: ", mapa_coahuila@data$PorDef,
"-Total de defunciones: ", mapa_coahuila@data$Total) %>% lapply(htmltools::HTML)
leaflet(data=mapa_coahuila) %>%
addTiles() %>%
addPolygons(fillColor = colores(mapa_coahuila$PorDef), fillOpacity = 0.7, label = textos_, labelOptions = labelOptions (style = list("font-weight" = "normal", padding = "3px 8px"), textsize = "12px", direction = "auto")) %>%
addLegend(color=colores_, labels=c("0-10%", "10-20%", "20-40%", "40-50%"))