if(!require(pacman)) install.packages('pacman')
library(pacman)
pacman::p_load(tidyverse, prettydoc, gtsummary, Amelia, naniar, gt)sinan_raw <- read_csv('../data/myturn_sinan.csv', col_select = c(-"...1"))Para fazer a recodificação dos valores de algumas variáveis, vamos adaptar uma função do pacote {microdatasus}.
recode_sinan_chagas <- function(data){
# Colunas
variables_names <- names(data)
# Declara objetos
ano <- NULL
unidade <- NULL
# DT_NOTIFIC
if ("DT_NOTIFIC" %in% variables_names) {
data$DT_NOTIFIC <- as.Date(data$DT_NOTIFIC)
}
# SG_UF_NOT
if ("SG_UF_NOT" %in% variables_names) {
data$SG_UF_NOT[data$SG_UF_NOT == "0"] <- "Ignorado"
data$SG_UF_NOT[data$SG_UF_NOT == "99"] <- "Ignorado"
data$SG_UF_NOT[data$SG_UF_NOT == "11"] <- "Rond\u00f4nia"
data$SG_UF_NOT[data$SG_UF_NOT == "12"] <- "Acre"
data$SG_UF_NOT[data$SG_UF_NOT == "13"] <- "Amazonas"
data$SG_UF_NOT[data$SG_UF_NOT == "14"] <- "Roraima"
data$SG_UF_NOT[data$SG_UF_NOT == "15"] <- "Par\u00e1"
data$SG_UF_NOT[data$SG_UF_NOT == "16"] <- "Amap\u00e1"
data$SG_UF_NOT[data$SG_UF_NOT == "17"] <- "Tocantins"
data$SG_UF_NOT[data$SG_UF_NOT == "21"] <- "Maranh\u00e3o"
data$SG_UF_NOT[data$SG_UF_NOT == "22"] <- "Piau\u00ed"
data$SG_UF_NOT[data$SG_UF_NOT == "23"] <- "Cear\u00e1"
data$SG_UF_NOT[data$SG_UF_NOT == "24"] <- "Rio Grande do Norte"
data$SG_UF_NOT[data$SG_UF_NOT == "25"] <- "Para\u00edba"
data$SG_UF_NOT[data$SG_UF_NOT == "26"] <- "Pernambuco"
data$SG_UF_NOT[data$SG_UF_NOT == "27"] <- "Alagoas"
data$SG_UF_NOT[data$SG_UF_NOT == "28"] <- "Sergipe"
data$SG_UF_NOT[data$SG_UF_NOT == "29"] <- "Bahia"
data$SG_UF_NOT[data$SG_UF_NOT == "31"] <- "Minas Gerais"
data$SG_UF_NOT[data$SG_UF_NOT == "32"] <- "Esp\u00edrito Santo"
data$SG_UF_NOT[data$SG_UF_NOT == "33"] <- "Rio de Janeiro"
data$SG_UF_NOT[data$SG_UF_NOT == "35"] <- "S\u00e3o Paulo"
data$SG_UF_NOT[data$SG_UF_NOT == "41"] <- "Paran\u00e1"
data$SG_UF_NOT[data$SG_UF_NOT == "42"] <- "Santa Catarina"
data$SG_UF_NOT[data$SG_UF_NOT == "43"] <- "Rio Grande do Sul"
data$SG_UF_NOT[data$SG_UF_NOT == "50"] <- "Mato Grosso do Sul"
data$SG_UF_NOT[data$SG_UF_NOT == "51"] <- "Mato Grosso"
data$SG_UF_NOT[data$SG_UF_NOT == "52"] <- "Goi\u00e1s"
data$SG_UF_NOT[data$SG_UF_NOT == "53"] <- "Distrito Federal"
}
# NU_IDADE_N
if ("NU_IDADE_N" %in% variables_names) {
data$NU_IDADE_N <- as.character(data$NU_IDADE_N)
data$NU_IDADE_N[data$NU_IDADE_N == "000" | data$NU_IDADE_N == "999"] <- NA
unidade <- substr(data$NU_IDADE_N, 1, 1)
# Idade em anos
data$IDADEanos <-
as.numeric(ifelse(
unidade == 4,
substr(data$NU_IDADE_N, 2, 3),
ifelse(unidade == 5, 100 + as.numeric(substr(data$NU_IDADE_N, 2, 3)), NA)
))
# Apaga campo original
data$NU_IDADE_N <- NULL
}
# CS_SEXO
if ("CS_SEXO" %in% variables_names) {
data$CS_SEXO[data$CS_SEXO == "M"] <- "Masculino"
data$CS_SEXO[data$CS_SEXO == "F"] <- "Feminino"
data$CS_SEXO[data$CS_SEXO == "I"] <- "Ignorado"
}
# CS_RACA
if ("CS_RACA" %in% variables_names) {
data$CS_RACA[data$CS_RACA == "1"] <- "Branca"
data$CS_RACA[data$CS_RACA == "2"] <- "Preta"
data$CS_RACA[data$CS_RACA == "3"] <- "Amarela"
data$CS_RACA[data$CS_RACA == "4"] <- "Parda"
data$CS_RACA[data$CS_RACA == "5"] <- "Ind\u00edgena"
data$CS_RACA[data$CS_RACA == "9"] <- "Ignorado"
}
# CS_ESCOL_N
if ("CS_ESCOL_N" %in% variables_names) {
data$CS_ESCOL_N[data$CS_ESCOL_N == "00"] <- "Ignorado"
data$CS_ESCOL_N[data$CS_ESCOL_N == "01"] <- "1a a 4a s\u00e9rie incompleta do EF"
data$CS_ESCOL_N[data$CS_ESCOL_N == "02"] <- "4a s\u00e9rie completa do EF (antigo 1o grau)"
data$CS_ESCOL_N[data$CS_ESCOL_N == "03"] <- "5a \u00e0 8a s\u00e9rie incompleta do EF (antigo gin\u00e1sio ou 1o grau)"
data$CS_ESCOL_N[data$CS_ESCOL_N == "04"] <- "Ensino fundamental completo (antigo gin\u00e1sio ou 1o grau)"
data$CS_ESCOL_N[data$CS_ESCOL_N == "05"] <- "Ensino m\u00e9dio incompleto (antigo colegial ou 2o grau)"
data$CS_ESCOL_N[data$CS_ESCOL_N == "06"] <- "Ensino m\u00e9dio completo (antigo colegial ou 2o grau)"
data$CS_ESCOL_N[data$CS_ESCOL_N == "07"] <- "Educa\u00e7\u00e3o superior incompleta"
data$CS_ESCOL_N[data$CS_ESCOL_N == "08"] <- "Educa\u00e7\u00e3o superior completa"
data$CS_ESCOL_N[data$CS_ESCOL_N == "09"] <- "Ignorado"
data$CS_ESCOL_N[data$CS_ESCOL_N == "10"] <- "N\u00e3o se aplica"
}
# CLASSI_FIN
if ("CLASSI_FIN" %in% variables_names) {
data$CLASSI_FIN[data$CLASSI_FIN == "1"] <- "Confirmado"
data$CLASSI_FIN[data$CLASSI_FIN == "2"] <- "Descartado"
data$CLASSI_FIN[data$CLASSI_FIN == "8"] <- "Inconclusivo"
}
# EVOLUCAO
if ("EVOLUCAO" %in% variables_names) {
data$EVOLUCAO[data$EVOLUCAO == "1"] <- "vivo"
data$EVOLUCAO[data$EVOLUCAO == "2"] <- "\u00d3bito por doenca de Chagas aguda"
data$EVOLUCAO[data$EVOLUCAO == "3"] <- "\u00d3bito por outras causas"
data$EVOLUCAO[data$EVOLUCAO == "9"] <- "Ignorado"
}
# Return
return(data)
}Seleciona variáveis de interesse.
sinan <- sinan_raw %>%
select(DT_NOTIFIC, SG_UF_NOT, ID_MUNICIP, NU_IDADE_N, CS_SEXO, CS_RACA, CS_ESCOL_N,
CLASSI_FIN, EVOLUCAO)sinan <- recode_sinan_chagas(sinan)Renomeia as variáveis.
sinan <- sinan %>%
rename(data = DT_NOTIFIC,
uf = SG_UF_NOT,
cod_municipio = ID_MUNICIP,
sexo = CS_SEXO,
raca = CS_RACA,
escolaridade = CS_ESCOL_N,
classificacao = CLASSI_FIN,
evolucao = EVOLUCAO,
idade = IDADEanos)# Primeiras 6 linhas da base de dados
sinan %>%
head() %>%
gt()| data | uf | cod_municipio | sexo | raca | escolaridade | classificacao | evolucao | idade |
|---|---|---|---|---|---|---|---|---|
| 2020-03-10 | Pará | 150010 | Masculino | Parda | Não se aplica | Descartado | vivo | 0 |
| 2020-02-07 | Minas Gerais | 313690 | Masculino | Branca | 5a à 8a série incompleta do EF (antigo ginásio ou 1o grau) | Descartado | vivo | 5 |
| 2020-02-19 | Pará | 150140 | Masculino | Parda | 4a série completa do EF (antigo 1o grau) | Descartado | vivo | 6 |
| 2020-11-11 | Distrito Federal | 530010 | Feminino | Branca | Ignorado | Descartado | NA | 4 |
| 2020-01-08 | Pará | 150010 | Masculino | Parda | 5a à 8a série incompleta do EF (antigo ginásio ou 1o grau) | Confirmado | vivo | 3 |
| 2020-03-11 | Pará | 150770 | Masculino | Parda | 1a a 4a série incompleta do EF | Descartado | vivo | 5 |
sinan %>%
tbl_summary(include = c(uf, raca, sexo),
by = classificacao,
sort = all_categorical() ~ "frequency") %>%
add_n() %>%
modify_header(label = "**Variável**") %>%
bold_labels()| Variável | N | Confirmado, N = 1801 | Descartado, N = 2,4221 |
|---|---|---|---|
| uf | 2,602 | ||
| Pará | 159 (88%) | 1,249 (52%) | |
| Bahia | 0 (0%) | 175 (7.2%) | |
| Minas Gerais | 1 (0.6%) | 173 (7.1%) | |
| Amapá | 5 (2.8%) | 129 (5.3%) | |
| Ceará | 0 (0%) | 94 (3.9%) | |
| Tocantins | 0 (0%) | 93 (3.8%) | |
| Paraíba | 0 (0%) | 62 (2.6%) | |
| Rio Grande do Sul | 0 (0%) | 49 (2.0%) | |
| Rondônia | 1 (0.6%) | 40 (1.7%) | |
| Rio de Janeiro | 3 (1.7%) | 37 (1.5%) | |
| Distrito Federal | 1 (0.6%) | 36 (1.5%) | |
| Acre | 1 (0.6%) | 34 (1.4%) | |
| Amazonas | 8 (4.4%) | 23 (0.9%) | |
| Piauí | 0 (0%) | 31 (1.3%) | |
| São Paulo | 0 (0%) | 30 (1.2%) | |
| Rio Grande do Norte | 0 (0%) | 27 (1.1%) | |
| Paraná | 0 (0%) | 24 (1.0%) | |
| Pernambuco | 0 (0%) | 20 (0.8%) | |
| Alagoas | 0 (0%) | 18 (0.7%) | |
| Sergipe | 0 (0%) | 15 (0.6%) | |
| Maranhão | 0 (0%) | 14 (0.6%) | |
| Mato Grosso | 1 (0.6%) | 11 (0.5%) | |
| Mato Grosso do Sul | 0 (0%) | 12 (0.5%) | |
| Santa Catarina | 0 (0%) | 10 (0.4%) | |
| Roraima | 0 (0%) | 7 (0.3%) | |
| Goiás | 0 (0%) | 6 (0.2%) | |
| Espírito Santo | 0 (0%) | 3 (0.1%) | |
| raca | 2,578 | ||
| Parda | 153 (85%) | 1,775 (74%) | |
| Branca | 16 (8.9%) | 402 (17%) | |
| Preta | 3 (1.7%) | 120 (5.0%) | |
| Ignorado | 1 (0.6%) | 81 (3.4%) | |
| Indígena | 7 (3.9%) | 12 (0.5%) | |
| Amarela | 0 (0%) | 8 (0.3%) | |
| Unknown | 0 | 24 | |
| sexo | 2,602 | ||
| Masculino | 109 (61%) | 1,283 (53%) | |
| Feminino | 71 (39%) | 1,139 (47%) | |
| 1 n (%) | |||
sinan %>%
miss_var_summary() %>%
gt()| variable | n_miss | pct_miss |
|---|---|---|
| evolucao | 568 | 21.8293620 |
| escolaridade | 291 | 11.1837048 |
| idade | 38 | 1.4604151 |
| raca | 24 | 0.9223674 |
| data | 0 | 0.0000000 |
| uf | 0 | 0.0000000 |
| cod_municipio | 0 | 0.0000000 |
| sexo | 0 | 0.0000000 |
| classificacao | 0 | 0.0000000 |