Created
June 13, 2022 13:20
-
-
Save rfsaldanha/a849716f4807fea7104b12e01fdf875f to your computer and use it in GitHub Desktop.
microdatasus with SQLite
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Pacotes | |
library(microdatasus) | |
library(tidyverse) | |
library(dbplyr) | |
library(DBI) | |
library(RSQLite) | |
# Cria conexão com o banco de dados | |
conn <- dbConnect(RSQLite::SQLite(), "sih.SQLite") | |
# Realiza download e pré-processamento dos dados em loop | |
anos <- c(2019, 2020) | |
meses <- 1:12 | |
ufs <- c("AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", | |
"GO", "MA", "MT", "MS", "MG", "PA", "PB", "PR", "PE", | |
"PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SP", "SE", | |
"TO") | |
for(ano in anos){ | |
for(mes in meses){ | |
for(uf in ufs){ | |
# Baixa o dado para um ano, mês e UF específico | |
tmp <- fetch_datasus( | |
year_start = ano, year_end = ano, | |
month_start = mes, month_end = mes, | |
uf = uf, information_system = "SIH-RD" | |
) | |
# Pré-processamento dos dados | |
tmp <- process_sih(data = tmp) | |
# Escreve na tabela "sih" no banco de dados, | |
# apensando os dados de cada ano e mês | |
dbWriteTable(conn = conn, name = "sih", value = tmp, append = TRUE) | |
# Remove a tabela temporária | |
rm(tmp) | |
} | |
} | |
} | |
# Realiza uma consulta ao banco de dados, | |
# criando uma tabela de quantidade de registros | |
# por sexo e causa básica | |
tbl(conn, "sih") %>% | |
group_by(SEXO, COMPLEX) %>% | |
summarise(freq = n()) %>% | |
ungroup() %>% | |
collect() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment