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

1. Elegir estado.

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

1. Porcentaje de defunciones.

(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")
Porcentaje de Defunciones por Municipio
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

2. Porcentaje de casos positivos con al menos una comorbilidad.

(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")
Total de Personas con Comorbilidades por Municipio
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

3. Total de casos positivos acumulados.

(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")
Total de Casos Positivos Acumulados por Día a Nivel Estatal
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

4. Total acumulado de defunciones.

(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")
Total de Defunciones Acumuladas por Día a Nivel Estatal
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

5. Porcentaje de mujeres.

(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")
Porcentaje de Mujeres que Representan un Caso Positivo por Municipio
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

2. Gráfico de barras con mayor porcentaje de defunciones.

(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")
10 Municipios con Mayor Número de Defunciones
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

3. Gráfico de barras con mayor número de casos positivos detectados.

(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")
10 Municipios con Mayor Número de Casos Positivos (divididos por hombres y mujeres)
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

4. Gráfico de líneas.

(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

5. Mapa.

(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%"))