Resumo
knitr::opts_chunk$set(echo = TRUE,
warning = FALSE,
message = FALSE,
fig.width = 8,
fig.height = 6,
fig.cap = '',
fig.align = 'center',
dpi = 72*2)#, global.par = TRUE)
options(width = 150,
scipen = 1e3)
suppressPackageStartupMessages(library(tidyverse))
suppressPackageStartupMessages(library(googledrive))
suppressPackageStartupMessages(library(lubridate))
suppressPackageStartupMessages(library(readxl))
suppressPackageStartupMessages(library(sf))
suppressPackageStartupMessages(library(rgdal))
suppressPackageStartupMessages(library(leaflet))
suppressPackageStartupMessages(library(units))
suppressPackageStartupMessages(library(kableExtra))
suppressPackageStartupMessages(library(DT))
# # Get Google Drive Credentials
# drive_auth(path = ".token.json")
# ## Get token from google console admin
#
# bases_encontradas <- drive_find(q = " name contains 'Base_Covid'", type = "xlsx", order_by = "modifiedTime")
# ultima_base <- last(bases_encontradas$name)
# ultima_base_id <- last(bases_encontradas$id)
#
# drive_download(file = as_id(ultima_base_id), overwrite = TRUE, path = paste("dados", ultima_base,sep = "/"))
# Carregar bases
base <- read_excel("dados/Base_Covid-19_07-05_VF.xlsx")
## Bases Georeferenciadas
brasil <- read_rds("dados/shapes/brasil_sf_gadm.rds")
brasil_ufs <- read_rds("dados/shapes/brasil_ufs_sf_gadm.rds")
pernambuco_bairros <- read_rds("dados/shapes/pernambuco_sf_bairros.rds")ID
Teste de unicidade da variável ID
| ID | n |
|---|---|
| start_E | n |
|---|---|
| FALSE | 7912 |
| TRUE | 8177 |
CIDSAUDE
| CIDSAUDE | n |
|---|---|
Valores mínimo e máximo de CIDSAUDE:
base %>%
summarise(min = min(CIDSAUDE, na.rm = TRUE),
max = max(CIDSAUDE, na.rm = TRUE)) %>%
kable()| min | max |
|---|---|
| 1 | 46056 |
Número de NA’s:
| is.na(CIDSAUDE) | n |
|---|---|
| FALSE | 16089 |
DNOTIFICACAO
Primeira e última data de notificação:
base %>% summarise(min = min(DNOTIFICACAO, na.rm = TRUE),
max = max(DNOTIFICACAO, na.rm = TRUE)) %>%
kable()| min | max |
|---|---|
| 2020-02-26 | 2020-05-06 |
DATA DE NASCIMENTO
base %>%
summarise(min = min(`DATA DE NASCIMENTO`, na.rm = TRUE),
max = max(`DATA DE NASCIMENTO`, na.rm = TRUE)) %>%
pivot_longer(cols = everything(), names_to = "Estremos", values_to = "Valor") %>%
mutate(Idade = today() - ymd(Valor)) %>%
kable(booked = TRUE)| Estremos | Valor | Idade |
|---|---|---|
| min | 1915-02-22 | 38428 days |
| max | 2020-12-18 | -223 days |
base %>%
mutate(IdadeDN = as.numeric(today() - ymd(`DATA DE NASCIMENTO`))/365,
Diferença = abs(IdadeDN - QIDADE)) %>%
filter(Diferença > 5, IdadeDN > 1) %>%
select(ID, `DATA DE NASCIMENTO`,
IdadeDN, QIDADE, Diferença,
starts_with("Anos")) %>%
arrange(-Diferença) %>% select(-ID) %>%
datatable() %>%
formatRound(columns = c("IdadeDN", "Diferença"), digits = 1) %>%
formatDate(columns = "DATA DE NASCIMENTO",
method = "toLocaleDateString")
Data de nascimento como NA:
| DN_NA | n |
|---|---|
| FALSE | 11893 |
| TRUE | 4196 |
QIDADE
base %>% summarise(min = min(QIDADE, na.rm = TRUE),
max = max(QIDADE, na.rm = TRUE),
NAs = sum(is.na(QIDADE))) %>%
pivot_longer(cols = everything(), names_to = "Variavel", values_to = "Valor") %>%
datatable()
ESTADO
## Colocar Tudo minúsculo
base %>%
mutate(Estado = str_to_lower(ESTADO)) %>%
count(Estado, sort = TRUE) %>%
datatable()
NMCIDADE
base %>% mutate(Cidade = iconv(str_to_lower(NMCIDADE), "utf8", "ASCII//TRANSLIT")) %>%
count(Cidade, sort = TRUE) %>%
datatable()
######### Testar se bairro eh de Recife <---------------------------------------------------
base %>% filter(NMCIDADE == "#N/A") %>%
select(ID, NMCIDADE) %>%
pivot_longer(cols = -ID, names_to = "Variável", values_to = "Original") %>%
mutate(Correção = "Recife", Data = now(), Nome = "leite@castlab.org") %>%
datatable()
NMBAIRRO
base %>% mutate(Bairro = iconv(str_to_lower(NMBAIRRO), "utf8", "ASCII//TRANSLIT")) %>%
count(Bairro) %>%
arrange(Bairro) %>%
datatable()
base %>% mutate(Bairro = iconv(str_to_lower(NMBAIRRO), "utf8", "ASCII//TRANSLIT")) %>%
count(Bairro) %>%
arrange(Bairro) %>%
datatable()
base %>% mutate(Bairro = iconv(str_to_lower(NMBAIRRO), "utf8", "ASCII//TRANSLIT")) %>%
count(BR_NA = is.na(Bairro)) %>%
datatable()
SINTOMAS
base_sintomas <-
base %>% select(ID, SINTOMAS) %>%
mutate(Sintomas = str_split(
str_replace_all(
str_to_lower(SINTOMAS),
pattern = " e ",
replacement = " - "), "-|,|/|\\+|\\s\\*\\s|\\.|;")) %>%
unnest(cols = Sintomas) %>%
mutate(Sintomas = iconv(str_trim(Sintomas, side = "both"), "utf8", "ASCII//TRANSLIT")) %>%
filter(Sintomas != "#n", Sintomas != "a", Sintomas != "")
### Comorbidades inclusas em algumas observações
base_sintomas %>%
count(Sintomas, sort = TRUE) %>%
datatable()
[1] 1292
CITY LEVEL
CDY e CDY
Problema de Cidade
### Jaboatao -> Jaboatão dos Guararapes
base_sf <- base %>%
mutate(cidade_ascii = iconv(str_to_lower(NMCIDADE), "utf8", "ASCII//TRANSLIT"),
estado_ascii = iconv(str_to_lower(ESTADO), "utf8", "ASCII//TRANSLIT")) %>%
filter(!is.na(NMCIDADE), NMCIDADE != "#N/A") %>%
filter(abs(CDX) > .Machine$double.eps, abs(CDY) > .Machine$double.eps) %>%
#select(cidade, CDX, CDY) %>%
mutate(cidade_ascii = if_else(cidade_ascii == 'jaboatao', 'jaboatao dos guararapes', cidade_ascii)) %>%
st_as_sf(coords = c("CDX","CDY")) %>%
st_sf(crs = st_crs(brasil))
base_sf <- base_sf %>%
mutate(Distância = st_distance(.,
brasil %>% right_join(
base_sf %>%
st_drop_geometry(),
by = c("estado_ascii", "cidade_ascii")),
by_element = TRUE))
base_sf %>% filter(Distância > units::set_units(500, m)) %>%
leaflet() %>%
addTiles() %>%
addPolygons(data = brasil_ufs %>% filter(estado %in% c("Pernambuco","Paraíba")),
color = "darkred", weight = 2, fillOpacity = 0) %>%
addPolygons(data = brasil %>% filter(estado %in% c("Pernambuco","Paraíba")),
label = ~cidade, color = "grey", weight = 1, fillOpacity = 0.2) %>%
addPolygons(data = brasil %>% filter(cidade %in% c("Recife")),
label = ~cidade, color = "orange", weight = 1) %>%
addCircles(radius = 100, weight = 5, color = ~if_else(cidade_ascii=="recife", "darkgreen","darkred"),
fillOpacity = .8,
label = ~cidade_ascii) %>%
addEasyButton(easyButton(
icon="fa-globe", title="Zoom to Level 12",
onClick=JS("function(btn, map){ map.setZoom(7); }"))
) %>%
addLegend(
position = "bottomright",
colors = rgb(t(col2rgb(c("darkred", "darkgreen"))) / 255),
labels = c("Outra", "Recife"),
opacity = 1,
title = "Cidade na base"
)
Problema nos bairros
Pontos em Pernambuco
base_sf_bairros <-base_sf %>% filter(st_contains(brasil_ufs %>%
filter(estado == "Pernambuco"),
.,
sparse = FALSE) == 1) %>%
mutate(bairro_ascii = iconv(str_to_lower(NMBAIRRO), "utf8", "ASCII//TRANSLIT"))
base_sf_bairros <- base_sf_bairros %>%
mutate(Distância = st_distance(.,
pernambuco_bairros %>% right_join(
base_sf_bairros %>%
st_drop_geometry(),
by = c("cidade_ascii", "bairro_ascii")),
by_element = TRUE))
base_sf_bairros %>%
filter(Distância > units::set_units(500,m)) %>%
select(cidade_ascii, bairro_ascii, Distância) %>%
mutate(Distância = as.numeric(Distância),
logDistância = log(as.numeric(Distância))) %>%
ggplot() +
geom_histogram(aes(x = logDistância), color = "white") +
labs(x = "Log da Distância", y = "Frequência", title = "Histograma da variável Distância (log)",
subtitle = "Ponto com distância maiores que 500m do bairro definido")
[1] 1953
base_sf_bairros %>%
filter(Distância > units::set_units(500,m)) %>%
select(cidade_ascii, bairro_ascii, Distância) %>%
mutate(Distância = as.numeric(Distância),
logDistância = log(as.numeric(Distância))) %>%
ggplot() +
geom_histogram(aes(x = logDistância), color = "white") + facet_wrap(. ~ cidade_ascii) +
labs(x = "Log da Distância", y = "Frequência", title = "Histograma da variável Distância (log)",
subtitle = "Ponto com distância maiores que 500m do bairro definido")
–!>