library(readxl)
library(tidyverse)
library(lubridate)
library(stringr)
library(knitr)
library(xlsx)
library(plotly)
library(rgdal)
library(RColorBrewer)
library(leaflet)
library(htmltools)
setwd("C:/Cristina/CIDE/Primer Semestre/Programacion/Final")

Ejercicio

Utilizando la información brindada por la Secretaría de Salud Federal sobre los casos de COVID-19 detectados en la República Mexicana, y considerando solamente los casos positivos se generarán tablas y gráficas.

Antes de ello, se tiene que hacer un pre-procesamiento de la base de datos:

### Carga de datos
X211130COVID19MEXICO <- read.csv("211130COVID19MEXICO.csv",
                                 encoding = "UTF-8")

El Economista 1 señaló que la Secretaría de Salud para el último día del mes del noviembre del presente año se registraban 3,887,873 casos acumulados de COVID-19 en México.
La base de datos abarca desde el 13 de marzo del 2020 hasta el 30 de noviembre del 2021. Revisando su estructura y los catalogos adjuntos resulta que la suma de:
* CASO DE COVID-19 CONFIRMADO POR ASOCIACIÓN CLÍNICA EPIDEMIOLÓGICA (CLAVE 1)
* CASO DE COVID-19 CONFIRMADO POR COMITÉ DE DICTAMINACIÓN (CLAVE 2)
* CASO DE SARS-COV-2 CONFIRMADO (CLAVE 3)
De la columna CLASIFICACION_FINAL equivalen a los casos reportados por la Secretaría.

CLAS_FIN<-X211130COVID19MEXICO %>% group_by(CLASIFICACION_FINAL) %>% count(CLASIFICACION_FINAL)
CLAS_FIN
## # A tibble: 7 x 2
## # Groups:   CLASIFICACION_FINAL [7]
##   CLASIFICACION_FINAL       n
##                 <int>   <int>
## 1                   1  245851
## 2                   2   14732
## 3                   3 3627290
## 4                   4   11448
## 5                   5   81936
## 6                   6  470439
## 7                   7 7409490
### Se filtran los casos positivos
Positivos<-filter(X211130COVID19MEXICO, X211130COVID19MEXICO$CLASIFICACION_FINAL<4)
dim(Positivos)
## [1] 3887873      40
rm(X211130COVID19MEXICO)

Por otro lado, se realiza el filtrado de los casos presentados en una entidad federativa con más de 20 municipios, en este caso Tamaulipas

### Se filtran los casos de Tamaulipas
Tamaulipas<-filter(Positivos, Positivos$ENTIDAD_RES=="28" )
rm(Positivos,
   CLAS_FIN)

Dado que la base de datos cuenta con la clave pero no con el dato del nombre del municipio se tiene que hacer la combinación con el catalogo correspondiente.

### Carga de catálogo
cat_muni<-read_excel("201128 Catalogos.xlsx",sheet = "Catálogo MUNICIPIOS")
cat_mun_tmps<-filter(cat_muni, cat_muni$CLAVE_ENTIDAD=="28" )

Sin embargo, antes de hacer esta “combinación” se tiene que buscar que existan campos en común por lo que se modifican las claves

### Modificación claves
Tamaulipas$MUNICIPIO_RES<-str_pad(Tamaulipas$MUNICIPIO_RES,3,side="left",pad="0") #todos los que son longitud cuatro se quedan igual, los de menor longitud se rellenan con ceros

### Cobinación de tablas
Tamps_COVID<-merge(x=cat_mun_tmps,
                  y=Tamaulipas, 
                  by.x = "CLAVE_MUNICIPIO", 
                  by.y = "MUNICIPIO_RES", 
                  all.x = FALSE, 
                  sort = FALSE)
rm(Tamaulipas,
   cat_muni,
   cat_mun_tmps)
gc()
##            used  (Mb) gc trigger   (Mb)  max used   (Mb)
## Ncells  1543145  82.5   15620324  834.3  13926648  743.8
## Vcells 13450752 102.7  752106108 5738.2 938615659 7161.1

1 Tablas

1.1 Porcentaje de defunciones por municipio

Como primer paso, se crea una columna de puros “1” para poder contar más facilmente los casos positivos, lo cuál será útil para todo el desarrollo.

Tamps_COVID$CUENTA<-1

Se crea una nueva columna para contabilizar las no defunciones que se obtienen a partir de los NA que resultan de establecer la columna de “Fecha de defunción” a tipo fecha

### Se establece el formato fecha
Tamps_COVID$FECHA_DEF<-as.Date(Tamps_COVID$FECHA_DEF, format="%Y-%m-%d")

### Se crea nueva columna
Tamps_COVID$DEFUN<-0

### Se rellena la nueva columna
  for (i in 1:dim(Tamps_COVID)[1]) {
if(is.na(Tamps_COVID[i,15])==T){
  Tamps_COVID[i,44]<-0
} else {
  Tamps_COVID[i,44]<-1
  }
  }

Para el cálculo del porcentaje de defunciones se crea una tabla resumen que contabilice tanto el número de casos positivos como el número de defunciones pra así realizar la división

### Creación tabla resumen
DEFUNCIONES<-aggregate(cbind((CUENTA),(DEFUN))~ CLAVE_MUNICIPIO+MUNICIPIO,
                       data=Tamps_COVID,sum)
### Cambio de encabezados
names(DEFUNCIONES)<-c("Clave","Municipio","Positivos","Defunciones")

### Se realiza la operación
DEFUNCIONES$PC_Defunciones<-round(((DEFUNCIONES$Defunciones/DEFUNCIONES$Positivos)*100), 2)

### Se ordenan de mayor a menor
DEFUNCIONES<-DEFUNCIONES[order(DEFUNCIONES$PC_Defunciones,decreasing = TRUE),]

### Se muestran
DEFUNCIONES
##    Clave          Municipio Positivos Defunciones PC_Defunciones
## 16   015 GUSTAVO DÍAZ ORDAZ        96          19          19.79
## 30   029             OCAMPO       117          23          19.66
## 10   010           CRUILLAS        18           3          16.67
## 32   031          PALMILLAS        12           2          16.67
## 44   043        XICOTÉNCATL       445          70          15.73
## 26   026         MIQUIHUANA        27           4          14.81
## 13   012           GONZÁLEZ       452          60          13.27
## 29   028      NUEVO MORELOS        50           6          12.00
## 28   027       NUEVO LAREDO      8177         935          11.43
## 4    004    ANTIGUO MORELOS       125          14          11.20
## 6    006         BUSTAMANTE        36           4          11.11
## 12   011       GÓMEZ FARÍAS       103          11          10.68
## 40   039               TULA       388          40          10.31
## 17   016            HIDALGO       171          17           9.94
## 34   033          RÍO BRAVO      1987         196           9.86
## 33   032            REYNOSA     15289        1458           9.54
## 8    008              CASAS        21           2           9.52
## 14   013             GÜÉMEZ       141          13           9.22
## 20   019              LLERA       159          14           8.81
## 11   021           EL MANTE      4574         352           7.70
## 21   020            MAINERO        54           4           7.41
## 1    001            ABASOLO       150          11           7.33
## 41   040      VALLE HERMOSO      1330          91           6.84
## 39   038            TAMPICO     15142         964           6.37
## 9    009      CIUDAD MADERO      8614         515           5.98
## 35   034         SAN CARLOS        85           5           5.88
## 22   022          MATAMOROS     15543         894           5.75
## 24   024               MIER       140           8           5.71
## 25   025      MIGUEL ALEMÁN       788          44           5.58
## 19   018            JIMÉNEZ        72           4           5.56
## 7    007            CAMARGO       290          15           5.17
## 43   042          VILLAGRÁN        40           2           5.00
## 3    003           ALTAMIRA      9557         458           4.79
## 23   023             MÉNDEZ        21           1           4.76
## 36   035       SAN FERNANDO      1091          50           4.58
## 42   041           VICTORIA     14745         574           3.89
## 2    002             ALDAMA      1062          41           3.86
## 5    005             BURGOS        26           1           3.85
## 38   037     SOTO LA MARINA      1054          24           2.28
## 18   017            JAUMAVE       372           8           2.15
## 31   030            PADILLA       452           7           1.55
## 15   014           GUERRERO        67           0           0.00
## 27   999    NO ESPECIFICADO         2           0           0.00
## 37   036        SAN NICOLÁS        13           0           0.00

Se observa que en ningún municipio se registran porcentajes de defunción de 20% o mayores, así mismo se observa que los municipios con un mayor porcentaje de defuncione, no son los municipios ni con más casos ni con mayor número de defunciones.

1.2 Porcentaje de casos positivos con al menos una comorbilidad a nivel municipal

Según el catalogo, el si está indicado por un “1”, en ese caso cuando se reporte “1” en cualquiera de estas columnas se considera un positivo con comorbilidad

  • DIABETES
  • EPOC
  • ASMA
  • INMUSUPR
  • HIPERTENSION
  • OTRAS_COM
  • CARDIOVASCULAR
  • OBESIDAD
  • RENAL_CRONICA
  • TABAQUISMO Entonces, se crea una nueva columna para indicar si al paciente tiene alguna comorbilidad y se rellena usando la condicional case_when y varias condiciones usando la expresión lógica or (|)
### Se modifica el DF para agregar y rellenar una columna
Tamps_COVID <- Tamps_COVID %>% 
  mutate(
    COMORB = case_when(
      DIABETES == 1 | EPOC == 1 | ASMA == 1 | INMUSUPR == 1 | HIPERTENSION == 1 |
        OTRA_COM == 1 | CARDIOVASCULAR == 1 | OBESIDAD == 1 | RENAL_CRONICA == 1 | TABAQUISMO == 1 ~ 1,
      TRUE ~ 0
    )
  )

Para el cálculo de el porcentaje de casos positivos con el menos una ccomorbilidad a nivel municipal se crea una tabla resumen que contabilice tanto el número de casos positivos como el número de casos con al menos una comorbilidad para realizar el cálculo

### Creación tabla resumen
COMORBILIDADES<-aggregate(cbind((CUENTA),(COMORB))~ CLAVE_MUNICIPIO+MUNICIPIO,
                       data=Tamps_COVID,sum)
### Cambio de encabezados
names(COMORBILIDADES)<-c("Clave","Municipio","Positivos","Al menos una comorbilidad")

### Se realiza la operación
COMORBILIDADES$PC_CComorb<-round(((COMORBILIDADES$`Al menos una comorbilidad`/COMORBILIDADES$Positivos)*100), 2)

### Se ordenan de mayor a menor
COMORBILIDADES<-COMORBILIDADES[order(COMORBILIDADES$PC_CComorb,decreasing = TRUE),]

### Se muestran 
COMORBILIDADES
##    Clave          Municipio Positivos Al menos una comorbilidad PC_CComorb
## 27   999    NO ESPECIFICADO         2                         2     100.00
## 26   026         MIQUIHUANA        27                        20      74.07
## 37   036        SAN NICOLÁS        13                         8      61.54
## 6    006         BUSTAMANTE        36                        21      58.33
## 30   029             OCAMPO       117                        68      58.12
## 12   011       GÓMEZ FARÍAS       103                        59      57.28
## 4    004    ANTIGUO MORELOS       125                        66      52.80
## 20   019              LLERA       159                        83      52.20
## 44   043        XICOTÉNCATL       445                       227      51.01
## 10   010           CRUILLAS        18                         9      50.00
## 7    007            CAMARGO       290                       144      49.66
## 35   034         SAN CARLOS        85                        41      48.24
## 40   039               TULA       388                       187      48.20
## 41   040      VALLE HERMOSO      1330                       635      47.74
## 19   018            JIMÉNEZ        72                        34      47.22
## 17   016            HIDALGO       171                        80      46.78
## 43   042          VILLAGRÁN        40                        18      45.00
## 25   025      MIGUEL ALEMÁN       788                       350      44.42
## 34   033          RÍO BRAVO      1987                       882      44.39
## 11   021           EL MANTE      4574                      1991      43.53
## 14   013             GÜÉMEZ       141                        61      43.26
## 18   017            JAUMAVE       372                       159      42.74
## 16   015 GUSTAVO DÍAZ ORDAZ        96                        41      42.71
## 1    001            ABASOLO       150                        63      42.00
## 29   028      NUEVO MORELOS        50                        21      42.00
## 32   031          PALMILLAS        12                         5      41.67
## 24   024               MIER       140                        58      41.43
## 38   037     SOTO LA MARINA      1054                       410      38.90
## 5    005             BURGOS        26                        10      38.46
## 13   012           GONZÁLEZ       452                       173      38.27
## 33   032            REYNOSA     15289                      5845      38.23
## 8    008              CASAS        21                         8      38.10
## 9    009      CIUDAD MADERO      8614                      3095      35.93
## 42   041           VICTORIA     14745                      5120      34.72
## 28   027       NUEVO LAREDO      8177                      2836      34.68
## 39   038            TAMPICO     15142                      5151      34.02
## 31   030            PADILLA       452                       151      33.41
## 36   035       SAN FERNANDO      1091                       360      33.00
## 15   014           GUERRERO        67                        22      32.84
## 22   022          MATAMOROS     15543                      4838      31.13
## 21   020            MAINERO        54                        16      29.63
## 3    003           ALTAMIRA      9557                      2419      25.31
## 23   023             MÉNDEZ        21                         5      23.81
## 2    002             ALDAMA      1062                       247      23.26

Se observa que de los dos casos posistivos que no especificaron su municipio el 100% tenían alguna comorbilidad.

1.3 Total de casos positivos acumulados por día a nivel estatal

### Se define como tipo fecha la columna de fecha de ingreso
Tamps_COVID$FECHA_INGRESO<-as.Date(Tamps_COVID$FECHA_INGRESO, format = "%Y-%m-%d")

### Se realiza el resumen de casos por día
CASOSXDIA<-Tamps_COVID %>%
  group_by(FECHA_INGRESO) %>%
  summarise(value = sum(CUENTA))

### Se ordenan de más antiguos a más recientes y se calcula el acumulado
CASOSXDIA<-CASOSXDIA[order(CASOSXDIA$FECHA_INGRESO,decreasing = FALSE),]
CASOSXDIA$ACUMULADOS<-cumsum(CASOSXDIA$value)

### Se ordenan de más recientes a más antiguos y se modifician los encabezados
CASOSXDIA<-CASOSXDIA[order(CASOSXDIA$FECHA_INGRESO,decreasing = TRUE),]
names(CASOSXDIA)=c("Fecha_Ingreso", "Casos_dia", "Acumulados")

### Se muestran los últimos 15 días
CASOSXDIA[1:15,]
## # A tibble: 15 x 3
##    Fecha_Ingreso Casos_dia Acumulados
##    <date>            <dbl>      <dbl>
##  1 2021-11-29           30     103098
##  2 2021-11-28           12     103068
##  3 2021-11-27           13     103056
##  4 2021-11-26           31     103043
##  5 2021-11-25           36     103012
##  6 2021-11-24           45     102976
##  7 2021-11-23           43     102931
##  8 2021-11-22           51     102888
##  9 2021-11-21           14     102837
## 10 2021-11-20           18     102823
## 11 2021-11-19           46     102805
## 12 2021-11-18           51     102759
## 13 2021-11-17           64     102708
## 14 2021-11-16           56     102644
## 15 2021-11-15           31     102588

1.4 Total acumulado de defunciones por día a nivel estatal

DEFUNXDIA<-Tamps_COVID %>%
  group_by(FECHA_DEF) %>%
  summarise(value = sum(CUENTA))

### Se ordenan de más antiguos a más recientes y se calcula el acumulado
DEFUNXDIA<-DEFUNXDIA[order(DEFUNXDIA$FECHA_DEF,decreasing = FALSE),]
DEFUNXDIA$ACUMULADOS<-cumsum(DEFUNXDIA$value)

### Se ordenan de más recientes a más antiguos y se modifician los encabezados
DEFUNXDIA<-DEFUNXDIA[order(DEFUNXDIA$FECHA_DEF,decreasing = TRUE),]
names(DEFUNXDIA)=c("Fecha_Defunción", "Defunciones_dia", "Acumulados")

### Se muestran los últimos 15 días
DEFUNXDIA[1:15,]
## # A tibble: 15 x 3
##    Fecha_Defunción Defunciones_dia Acumulados
##    <date>                    <dbl>      <dbl>
##  1 2021-11-29                    1       6964
##  2 2021-11-26                    1       6963
##  3 2021-11-25                    1       6962
##  4 2021-11-24                    1       6961
##  5 2021-11-23                    5       6960
##  6 2021-11-22                    2       6955
##  7 2021-11-20                    3       6953
##  8 2021-11-19                    1       6950
##  9 2021-11-18                    1       6949
## 10 2021-11-17                    4       6948
## 11 2021-11-16                    4       6944
## 12 2021-11-15                    1       6940
## 13 2021-11-14                    2       6939
## 14 2021-11-13                    6       6937
## 15 2021-11-12                    1       6931

1.5 Porcentaje de mujeres, a nivel municipal, que representan un caso positivo

número de mujeres positivas en el municipio/numero de casos positvos en ese municipio

### Se carga el catologo de sexo
cat_sex<-read_excel("201128 Catalogos.xlsx",sheet = "Catálogo SEXO")

### Se combinan tablas para agregar el sexo
Tamps_COVID<-merge(x=Tamps_COVID,
                  y=cat_sex, 
                  by.x = "SEXO", 
                  by.y = "CLAVE", 
                  sort = FALSE)
### Se limpia memoria
rm(cat_sex)

### Se crea la tabla y se calcula el porcentaje
MUJ_POS<-as.data.frame.array(table(Tamps_COVID$MUNICIPIO,Tamps_COVID$DESCRIPCIÓN))
MUJ_POS$TOTAL<-MUJ_POS$HOMBRE+MUJ_POS$MUJER
MUJ_POS$PC_MUJ<-round((MUJ_POS$MUJER/MUJ_POS$TOTAL)*100,2)
MUJ_POS<-MUJ_POS[order(MUJ_POS$PC_MUJ,decreasing = TRUE),]
MUJ_POS[1:10,]
##            HOMBRE MUJER TOTAL PC_MUJ
## MIQUIHUANA      8    19    27  70.37
## BUSTAMANTE     11    25    36  69.44
## PALMILLAS       4     8    12  66.67
## BURGOS          9    17    26  65.38
## MÉNDEZ          8    13    21  61.90
## CRUILLAS        7    11    18  61.11
## VILLAGRÁN      16    24    40  60.00
## CAMARGO       119   171   290  58.97
## TULA          165   223   388  57.47
## ALDAMA        456   606  1062  57.06

2 Gráfico: Mayor porcentaje de defunciones

TOP_MUNI_DEFUN<-DEFUNCIONES[1:10,]

### Tooltip
Tooltip_defun <- paste( "Municipio : ",TOP_MUNI_DEFUN$Municipio,"\n",
    "% Defunciones por COVID19: ", TOP_MUNI_DEFUN$PC_Defunciones,"%")

### Gráfica
Defun<-ggplot(TOP_MUNI_DEFUN)+
  aes(x=Municipio, y=PC_Defunciones, text=Tooltip_defun)+
  geom_bar(stat = "identity", fill="#D9F0D3", col="black",width = .5,
           lwd=0.1)+
  labs(x="Municipio", y="Porcentaje de defunciones", title="Porcentaje de defunciones de COVID según municipio", subtitle = "Tamaulipas, desde 03-04-2020 a 30-11-2021")+
  theme_minimal(base_size = 6)

### Animar
ggplotly(Defun,tooltip = c("Tooltip_defun"))

3 Gráfico: Mayor número de casos positivos

Gráfico de barras de los 10 municipios con mayor número de casos positivos detectados, divido por hombres y por mujeres.

### Se crea tabla resumen de casos por municipio según sexo
SEX_COVID<-aggregate(CUENTA ~ CLAVE_MUNICIPIO+MUNICIPIO+DESCRIPCIÓN,
                       data=Tamps_COVID,
                       sum)

### Se ordena la tabla y se seleccionan los municipios con mayor cantidad de casos
SEX_COVID_TOP10<-SEX_COVID %>% arrange(desc(CUENTA)) %>% group_by(DESCRIPCIÓN) %>% top_n(10)
## Selecting by CUENTA
SEX_COVID_TOP10
## # A tibble: 20 x 4
## # Groups:   DESCRIPCIÓN [2]
##    CLAVE_MUNICIPIO MUNICIPIO     DESCRIPCIÓN CUENTA
##    <chr>           <chr>         <chr>        <dbl>
##  1 022             MATAMOROS     HOMBRE        8109
##  2 038             TAMPICO       HOMBRE        8034
##  3 032             REYNOSA       HOMBRE        7876
##  4 041             VICTORIA      MUJER         7829
##  5 022             MATAMOROS     MUJER         7434
##  6 032             REYNOSA       MUJER         7413
##  7 038             TAMPICO       MUJER         7108
##  8 041             VICTORIA      HOMBRE        6916
##  9 003             ALTAMIRA      HOMBRE        5321
## 10 009             CIUDAD MADERO HOMBRE        4511
## 11 003             ALTAMIRA      MUJER         4236
## 12 027             NUEVO LAREDO  HOMBRE        4165
## 13 009             CIUDAD MADERO MUJER         4103
## 14 027             NUEVO LAREDO  MUJER         4012
## 15 021             EL MANTE      MUJER         2395
## 16 021             EL MANTE      HOMBRE        2179
## 17 033             RÍO BRAVO     HOMBRE        1025
## 18 033             RÍO BRAVO     MUJER          962
## 19 040             VALLE HERMOSO MUJER          716
## 20 040             VALLE HERMOSO HOMBRE         614
### Tooltip
Tooltip_sex <- paste( "MUNICIPIO : ",SEX_COVID_TOP10$MUNICIPIO,"\n",
    "Número de casos de COVID19: ", SEX_COVID_TOP10$CUENTA, SEX_COVID_TOP10$DESCRIPCIÓN)
### Colores
col_sex<-c("#AF8DC3","#7FBF7B")

### Gráfica
Sex<-ggplot(SEX_COVID_TOP10)+
  aes(x=MUNICIPIO, y=CUENTA, fill=DESCRIPCIÓN, text=Tooltip_sex)+
  geom_bar(stat = "identity", width = .5,
           lwd=0.1, position = "dodge")+
  scale_fill_manual(values = c("#7FBF7B","#AF8DC3"))+
  labs(x="Municipio", y="Número de casos", title="Número de casos positivos de COVID según municipio y sexo", subtitle = "Tamaulipas, desde 03-04-2020 a 30-11-2021")+
  theme_minimal(base_size = 6)

### Animar
ggplotly(Sex,tooltip = c("Tooltip_sex"))

4 Gráfico: Número acumulado de defunciones

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.

### Se ordan de más recientes a más antiguos
DEFUNXDIA_ACUM<-DEFUNXDIA[order(DEFUNXDIA$Fecha_Defunción,decreasing = FALSE),]

### Se elimina el ultimo registro que corresponden a los NA, es decir a quienes no fallecieron
DEFUNXDIA_ACUM<-DEFUNXDIA_ACUM[1:dim(DEFUNXDIA_ACUM)[1]-1,]
### Diarias
### Tooltip
Tooltip_acum <- paste( "Fecha : ",DEFUNXDIA_ACUM$Fecha_Defunción,"\n",
    "Número de defunciones : ", DEFUNXDIA_ACUM$Defunciones_dia,"\n",
    "Número de defunciones acumuladas: ", DEFUNXDIA_ACUM$Acumulados)

### Gráfica
Diaria<-ggplot(DEFUNXDIA_ACUM)+
  aes(x=Fecha_Defunción, y=Defunciones_dia, text=Tooltip_acum)+
  geom_line(group=1)+
  geom_point(aes(alpha=.5))+
  labs(x="Fecha de Defunción", y="Número de defunciones", title="Defunciones diarias por COVID, Tamaulipas, desde 03-04-2020 a 30-11-2021")+
  theme_minimal()

### Animar
ggplotly(Diaria,tooltip = c("Tooltip_acum"))
### Acumulados
### Tooltip
Tooltip_acum <- paste( "Fecha : ",DEFUNXDIA_ACUM$Fecha_Defunción,"\n",
    "Número de defunciones : ", DEFUNXDIA_ACUM$Defunciones_dia,"\n",
    "Número de defunciones acumuladas: ", DEFUNXDIA_ACUM$Acumulados)

### Gráfica
Acum<-ggplot(DEFUNXDIA_ACUM)+
  aes(x=Fecha_Defunción, y=Acumulados, text=Tooltip_acum)+
  geom_line(group=1)+
  geom_point(aes(alpha=.5))+
  labs(x="Fecha de Defunción", y="Número de defunciones", title="Número acumulado de defunciones por COVID, Tamaulipas, desde 03-04-2020 a 30-11-2021")+
  theme_minimal()

### Animar
ggplotly(Acum,tooltip = c("Tooltip_acum"))

5 Mapa: Distribución del porcentaje de defunciones

Para realizar un mapa, primero se tiene que cargar ek archivo vectorial corresponidnete, en este caso se usa el archivo .shp del Marco Geoestadístico Nacional, del INEGI. Para su carga se requirió hacer una reproyección de ITRF a WGS n el software QGIS, así mismo para la carga y manipulación de este archivo se necesita de la librería rgdal

#### Shape MGN INEGI
Tamps <- readOGR(dsn="C:\\Cristina\\CIDE\\Primer Semestre\\Programacion\\Final",
                        layer = "tamps_isso",
                        encoding = "UTF-8")
## OGR data source with driver: ESRI Shapefile 
## Source: "C:\Cristina\CIDE\Primer Semestre\Programacion\Final", layer: "tamps_isso"
## with 43 features
## It has 4 fields

Luego se tienen que combinar o unir tanto la información del archivo .shp como el de las bases de datos para así definir como se estratificarán los valores y que solor se le asignará.

#### Merge entre Shape-DF
merge_defun<-merge(x = Tamps@data, 
                       y = DEFUNCIONES,
                       by.x="CVE_MUN",
                       by.y="Clave",
                       sort=FALSE) 

#### Modificacion archivo espacial
Tamps@data$PC_DEFUN<-merge_defun$PC_Defunciones
Tamps@data$DEFUN<-merge_defun$Defunciones

#### Cuantiles
cuantil<-cut(Tamps@data$PC_DEFUN,5)
lev_cuan<-levels(cuantil)
#"(-0.0198,3.96]" "(3.96,7.92]"    "(7.92,11.9]"  "(11.9,15.8]"    "(15.8,19.8]"
cortes_defun<-c(0,3.96,7.92,11.9,15.8,19.8)

#### Colores
coloresdefun <- colorBin( palette="Purples", domain=Tamps$PC_DEFUN, na.color="transparent", bins=cortes_defun)
my_colors <- brewer.pal(5,"Purples") #Para la simbología

#### Tooltip
textosm <- paste(
  "Municipio : ",Tamps$NOMGEO,"<br/>",
    "% de Defunciones por COVID19: ", Tamps$PC_DEFUN,"%","<br/>",
    "Total de Defunciones por COVID19: ", Tamps$DEFUN) %>% lapply(htmltools::HTML)

#### Mapa
leaflet(Tamps) %>% 
  addTiles() %>% 
  addPolygons(label = textosm, fillColor = coloresdefun(Tamps$PC_DEFUN),
              fillOpacity = 0.75,color = "black", weight =1)%>% 
  addLegend(color = my_colors,
            labels = c("Muy Bajo (0,3.96]", "Bajo (3.96,7.92]", "Medio (7.92,11.9]","Alto (11.9,15.8]", "Muy Alto (15.8,19.8]"),
            title="% de Defunciones")

  1. El Economista (30 de noviembre del 2021) Número de casos de Covid-19 en México al 30 de noviembre de 2021 https://www.eleconomista.com.mx/politica/Numero-de-casos-de-Covid-19-en-Mexico-al-30-de-noviembre-de-2021-20211130-0113.html↩︎