Acciones a trabajar:

  • 1.Conocer los datos y trabajar con un formato amigable para la posterior manipulación.

  • 2.Transformación de datos.

  • 3.Visualización.

Luego de estos tres pasos, la preparación del informe, el reporte tiene que seguir algunas reglas para dar validez a las conclusiones. Entre ellas, presentar la fuente trabajada y cómo fue el proceso seguido para la entrega de cada gráfica presentada en el reporte final.

Para tener en cuenta la generación de visualizaciones efectivas tengamos en cuenta:

  • Que sean visualmente atractivos, intuitivos, legibles
  • Usar el tipo de gráfico y las escalas de eje correctos
  • Utilizar la proximidad y la alineación para facilitar la comparación
  • Usar etiquetas y anotaciones para agregar claridad al mensaje

Esto permite:

  • Una comunicación clara e impactante
  • Eleva la influencia con los grupos de interés
  • Facilita la toma de decisiones

Practica con datos Epidemiología

# Preliminares

library(readxl)
library(tidyverse)
library(dplyr)
library(car)
library(ggplot2)

setwd("C:/Users/Administrador.PUESTO09/Desktop/TrabajosConR/RMarkdown")

CONOCER LOS DATOS

Vemos los datos

epi <- read_excel("C:/Users/Administrador.PUESTO09/Desktop/TrabajosConR/RMarkdown/Data/covid_example_data.xlsx")

View(epi)

Vemos la estructura

dim(epi)
## [1] 82101    31

Revisamos nuevamente las variables:

names(epi)
##  [1] "PID"                    "reprt_creationdt_FALSE" "case_dob_FALSE"        
##  [4] "case_age"               "case_gender"            "case_race"             
##  [7] "case_eth"               "case_zip"               "Contact_id"            
## [10] "sym_startdt_FALSE"      "sym_fever"              "sym_subjfever"         
## [13] "sym_myalgia"            "sym_losstastesmell"     "sym_sorethroat"        
## [16] "sym_cough"              "sym_headache"           "sym_resolved"          
## [19] "sym_resolveddt_FALSE"   "contact_household"      "hospitalized"          
## [22] "hosp_admidt_FALSE"      "hosp_dischdt_FALSE"     "died"                  
## [25] "died_covid"             "died_dt_FALSE"          "confirmed_case"        
## [28] "covid_dx"               "pos_sampledt_FALSE"     "latitude_JITT"         
## [31] "longitude_JITT"
head(epi,5)
## # A tibble: 5 × 31
##   PID            reprt_creationdt_FALSE case_dob_FALSE      case_age case_gender
##   <chr>          <dttm>                 <dttm>                 <dbl> <chr>      
## 1 3a85e6992a5ac… 2020-03-22 00:00:00    2004-11-08 00:00:00       16 Male       
## 2 c6b5281d5fc50… 2020-02-01 00:00:00    1964-06-07 00:00:00       57 Male       
## 3 53495ad0dca4e… 2020-02-10 00:00:00    1944-04-06 00:00:00       77 Female     
## 4 2948a265da0d0… 2020-03-20 00:00:00    1964-06-25 00:00:00       57 Female     
## 5 a5524aadd1ca0… 2020-02-26 00:00:00    1964-12-21 00:00:00       56 Male       
## # ℹ 26 more variables: case_race <chr>, case_eth <chr>, case_zip <dbl>,
## #   Contact_id <chr>, sym_startdt_FALSE <dttm>, sym_fever <chr>,
## #   sym_subjfever <chr>, sym_myalgia <chr>, sym_losstastesmell <chr>,
## #   sym_sorethroat <chr>, sym_cough <chr>, sym_headache <chr>,
## #   sym_resolved <chr>, sym_resolveddt_FALSE <dttm>, contact_household <chr>,
## #   hospitalized <chr>, hosp_admidt_FALSE <dttm>, hosp_dischdt_FALSE <dttm>,
## #   died <chr>, died_covid <chr>, died_dt_FALSE <dttm>, confirmed_case <chr>, …

CONSIGNAS

Vamos a trabajar para responder a tres preguntas:

    1. ¿ Cuál es el grupo con mayor casos de positivos?
  • niños, jóvenes, adultos, adultos mayores -

    1. Porcentaje de fallecimiento sobre el total de confirmados de Covid.
    1. Ver en un mapa dónde se ubican los casos positivos.

TRANSFORMAR LOS DATOS

Generamos una clasificación por edades:

Clasificación por edades: Niños: hasta 12 años Jóvenes: mas 12 a 20 años Adultos: 21 a 59 Adultos mayores: +60

Consiga A

# Selecciono las variables que necesito 

(datos_a <- epi %>% 
   select(case_age, confirmed_case))
## # A tibble: 82,101 × 2
##    case_age confirmed_case
##       <dbl> <chr>         
##  1       16 Yes           
##  2       57 Yes           
##  3       77 Yes           
##  4       57 Yes           
##  5       56 Yes           
##  6       65 Yes           
##  7       47 Yes           
##  8       61 Yes           
##  9       36 Yes           
## 10       42 Yes           
## # ℹ 82,091 more rows
# Grupo de Edades -una forma-: 

niños <-  datos_a %>%
  filter(case_age <=12, confirmed_case == "Yes", as.factor.result = TRUE)

jovenes <- datos_a %>%
  filter(case_age >12, case_age <= 20,confirmed_case == "Yes", as.factor.result = TRUE)

adultos <- datos_a %>%
  filter(case_age >=21, case_age <59,confirmed_case == "Yes", as.factor.result = TRUE)

adultos_mayores <- datos_a %>%
  filter(case_age >60,confirmed_case == "Yes", as.factor.result = TRUE)
# Otra forma en la misma tabla usando pipa

range_age <- datos_a %>%
  mutate(niños = case_age <=12) %>%
mutate(jovenes = case_age >12 | case_age <= 20) %>%
  mutate(adultos = case_age >=21 | case_age <59 ) %>%
  mutate (adultos_mayores = case_age >60)
summary(range_age)
##     case_age      confirmed_case       niños         jovenes       
##  Min.   :-20.00   Length:82101       Mode :logical   Mode:logical  
##  1st Qu.: 25.00   Class :character   FALSE:77784     TRUE:82053    
##  Median : 37.00   Mode  :character   TRUE :4269      NA's:48       
##  Mean   : 39.69                      NA's :48                      
##  3rd Qu.: 53.00                                                    
##  Max.   :106.00                                                    
##  NA's   :48                                                        
##  adultos        adultos_mayores
##  Mode:logical   Mode :logical  
##  TRUE:82053     FALSE:69786    
##  NA's:48        TRUE :12267    
##                 NA's :48       
##                                
##                                
## 

Respuesta Consigna A El 99.9% de los casos de Jóvenes y Adultos fueron positivos. Ambos son los grupos de mayor casos confirmados de los que realizaron el test.

Consigna B

# Generamos los datos que necesitamos para la segunda consigna

datos_b <- epi %>%
  select(confirmed_case, died) 

covid_fall <- datos_b %>%
  filter(confirmed_case == "Yes")

covid_fall$died <- as.factor(covid_fall$died)
summary(covid_fall, na.fail(TRUE))
##  confirmed_case          died      
##  Length:82062       (Other):45243  
##  Class :character   NA's   :36819  
##  Mode  :character
summary(covid_fall)
##  confirmed_case          died      
##  Length:82062       No     :43383  
##  Class :character   Unknown:  158  
##  Mode  :character   Yes    : 1702  
##                     NA's   :36819

Del total de datos sobre fallecimientos el 44,9% son valores perdidos NAs. Del total entre fallecidos y no fallecidos, se confirmaron de Covid: De los confirmados de Covid, fallecieron el 3,8 % de los casos.

covid_fall$died <- as.factor(covid_fall$died)

ggplot(data = covid_fall, mapping = aes(x=died, fill=died))+
  geom_bar() +
  xlab("Defunción Covid") +
  ylab("cantidad") +
  ggtitle("Defunción por Covid") 

Consigna C

#Generamos los datos para trabajar la tercer consigna 

datos_c <- epi %>%
  select(confirmed_case, latitude_JITT, longitude_JITT)

datos_c$confirmed_case <- as.factor(datos_c$confirmed_case)



datos_c <-datos_c %>%
  rename(casoscovid = confirmed_case) %>%
  rename(x = latitude_JITT) %>%
  rename(y=longitude_JITT) 
#Preliminares
library(carData)
library(car)
library(sp)
library(sf)
## Método por sf

datos_sf <- st_as_sf(datos_c, coords = c("x", "y"),
                  dim ="XY",
                  crs= 4323, na.fail = FALSE)

datos_sf
## Simple feature collection with 82101 features and 1 field
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: -0.003997681 ymin: -84.80029 xmax: 34.1887 ymax: 0.003998617
## CRS:           NA
## # A tibble: 82,101 × 2
##    casoscovid                   geometry
##  * <fct>                         <POINT>
##  1 Yes              (33.77665 -84.38569)
##  2 Yes              (33.78051 -84.38947)
##  3 Yes              (33.73023 -84.38425)
##  4 Yes              (33.55507 -84.62885)
##  5 Yes              (34.10609 -84.27454)
##  6 Yes              (33.75937 -84.42582)
##  7 Yes              (33.76269 -84.40045)
##  8 Yes              (33.99152 -84.35447)
##  9 Yes              (33.81819 -84.37365)
## 10 Yes        (0.000509015 -0.000975479)
## # ℹ 82,091 more rows
## Segundo método sp

datos_sp  <- datos_c[!is.na(datos_c$x) & !is.na(datos_c$y),]
coordinates(datos_sp) = ~ x + y
datos_sp = st_as_sf(datos_sp)
st_crs(datos_sp) = 32717

datos_sp
## Simple feature collection with 81901 features and 1 field
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: -0.003997681 ymin: -84.80029 xmax: 34.1887 ymax: 0.003998617
## Projected CRS: WGS 84 / UTM zone 17S
## # A tibble: 81,901 × 2
##    casoscovid                   geometry
##  * <fct>                     <POINT [m]>
##  1 Yes              (33.77665 -84.38569)
##  2 Yes              (33.78051 -84.38947)
##  3 Yes              (33.73023 -84.38425)
##  4 Yes              (33.55507 -84.62885)
##  5 Yes              (34.10609 -84.27454)
##  6 Yes              (33.75937 -84.42582)
##  7 Yes              (33.76269 -84.40045)
##  8 Yes              (33.99152 -84.35447)
##  9 Yes              (33.81819 -84.37365)
## 10 Yes        (0.000509015 -0.000975479)
## # ℹ 81,891 more rows
library(mapview)
library(viridisLite)
library(viridis)
library(rayshader)
library(av)
library(magick)

**Revisa estos códigos y arregla los detalles que se requieren para que se visualicen los gráficos. ¿Dónde está el error?

#plot(datos_sp)
#mapview::mapview(st_transform(datos_sp, crs = 4326))

Hacia el gráfico 3D Revisa el error para que puedan visualizarse la gráfica

#plot_e <- ggplot(data = datos_sf) +
#  geom_sf(aes(fill = casoscovid)) +
#              scale_fill_viridis()+
#  scale_fill_discrete() +
#            ggtitle("Casos Covid") +
#            theme_bw()
#plot_e 

3D

#plot_gg(plot_e, multicore = TRUE, width=5, height=5, scale = 200, 
#        windowsize=c(1280,720), zoom = 0.60, phi=50, sunangle=120, theta = 45)
#render_snapshot()