forked from mcd-unison/examen-prog
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Examen-prog.R
118 lines (95 loc) · 4.91 KB
/
Examen-prog.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#Examen de conocimiento de programación e ingeniería de software
#Enrique Alvarado Ceseña
#Maestria en Ciencia de Datos Unison
#2020-06-23
#Se cargan las librerias a utilizar
library(tidyverse)
library(ggplot2)
library(scales)
library(lubridate)
library(dplyr)
#Leemos la fuente de datos para guardarlo en un objeto data frame
datos_covid <- read.csv("./covid-data/200511COVID19MEXICO.csv",
header = TRUE,
sep = ",",
stringsAsFactors = FALSE)
#Nos aseguramos que las fechas tengan el tipo de dato Date para poder hacer buen manejo de fechas
datos_covid <- datos_covid %>% mutate(FECHA_ACTUALIZACION = as.Date(FECHA_ACTUALIZACION, "%Y-%m-%d"),
FECHA_INGRESO = as.Date(FECHA_INGRESO, "%Y-%m-%d"),
FECHA_SINTOMAS = as.Date(FECHA_SINTOMAS,"%Y-%m-%d"),
FECHA_DEF = as.Date(FECHA_DEF,"%Y-%m-%d")
)
#Separamos Fechas en año, mes, día y semana para poder hacer agrupaciones y visualizaciones
datos_covid <- datos_covid %>% mutate(year_inicio_sintomas = lubridate::year(FECHA_SINTOMAS),
month_inicio_sintomas = lubridate::month(FECHA_SINTOMAS),
day_inicio_sintomas = lubridate::day(FECHA_SINTOMAS),
weekday_inicio_sintomas = weekdays(FECHA_SINTOMAS),
year_deceso = lubridate::year(FECHA_DEF),
month_deceso = lubridate::month(FECHA_DEF),
day_deceso = lubridate::day(FECHA_DEF),
weekday_deceso = weekdays(FECHA_DEF)
)
#Seleccionamos los confirmados de sonora usando filter con los resultados en 1 y entidad de residencia en 26
tabla_1_confirmados_sonora <-
(select(datos_covid, ENTIDAD_RES, FECHA_SINTOMAS, RESULTADO,
year_inicio_sintomas, month_inicio_sintomas, day_inicio_sintomas
) %>%
group_by(FECHA_SINTOMAS) %>%
filter(RESULTADO == 1, ENTIDAD_RES == 26)
)
#Hacemos el conteo de los confirmados con el dataframe anterior
tabla_1_confirmados_sonora <- summarise(tabla_1_confirmados_sonora,
total_confirmados = n()
)
#seleccionamos los decesos de los residentes de sonora cuya fecha de defuncion no se NA
tabla_1_decesos_sonora <-
(select(datos_covid, ENTIDAD_RES, FECHA_DEF, RESULTADO,
year_deceso, month_deceso, day_deceso
) %>%
group_by(FECHA_DEF) %>%
filter(RESULTADO == 1, ENTIDAD_RES == 26, !is.na(FECHA_DEF))
)
#Conteo del Data frame anterior
tabla_1_decesos_sonora <- summarise(tabla_1_decesos_sonora,
total_decesos = n()
)
#Hacemos un Join de las dos tablas anteriores para obtener los confirmados y defunciones por dia
tabla_1 <- tabla_1_confirmados_sonora %>%
left_join(tabla_1_decesos_sonora, by = c("FECHA_SINTOMAS" = "FECHA_DEF"))
#Escribimos todo a un csv en el mismo path del csv original
write_csv(tabla_1,"./covid-data/tabla1.csv")
#Generamos DataFrames para los labels de la grafica
CLAVE <- c(26,08,19,21)
NOMBRE <- c('SONORA', 'CHIHUAHUA', 'NUEVO LEON', 'PUEBLA')
estados <- data.frame(CLAVE,NOMBRE)
#Obtenemos los hospitalizados agrupados por fecha de ingreso y entidad, filtrando solo las entidades que queremos
tabla_hospitalizados <- (select(datos_covid, ENTIDAD_RES, FECHA_INGRESO, RESULTADO,
year_inicio_sintomas, month_inicio_sintomas, day_inicio_sintomas)
)
#Hacemos un join con el dataframe de estados para incluirlo
tabla_hospitalizados <- full_join(tabla_hospitalizados, estados, by = c("ENTIDAD_RES" = "CLAVE"))
#Filtramos solo las entidades que requerimos
tabla_hospitalizados <- tabla_hospitalizados %>%
group_by(FECHA_INGRESO, NOMBRE, ENTIDAD_RES) %>%
filter(RESULTADO == 1, ENTIDAD_RES == 26 | ENTIDAD_RES == 08 | ENTIDAD_RES == 19 | ENTIDAD_RES == 21)
#Hacemos el resumen
tabla_hospitalizados <- summarise(tabla_hospitalizados,
total = n())
#Escribimos todo a un csv en el mismo path del csv original
write_csv(tabla_hospitalizados,"./covid-data/tabla2.csv")
#Hacemos la grafica utilizando ggplot
ggplot(data = tabla_hospitalizados, mapping = aes(FECHA_INGRESO, total, fill = NOMBRE)) +
geom_bar(stat = "identity")
#Seleccionamos los confirmados a nivel nacional
tabla_1_confirmados_nacional <-
(select(datos_covid, ENTIDAD_RES, FECHA_SINTOMAS, RESULTADO,
) %>%
group_by(FECHA_SINTOMAS) %>%
filter(RESULTADO == 1)
)
#Hacemos el resumen de los confirmados para la grafica
tabla_1_confirmados_nacional <- summarise(tabla_1_confirmados_nacional,
total = n())
#Se hace un plot de la grafica se confirmados en el tiempo
ggplot(data = tabla_1_confirmados_nacional, mapping = aes(x=FECHA_SINTOMAS, y = total)) +
geom_line()