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:
Esto permite:
# Preliminares
library(readxl)
library(tidyverse)
library(dplyr)
library(car)
library(ggplot2)
setwd("C:/Users/Administrador.PUESTO09/Desktop/TrabajosConR/RMarkdown")
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>, …
Vamos a trabajar para responder a tres preguntas:
niños, jóvenes, adultos, adultos mayores -
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
# 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.
# 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")
#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()