Descobri um pacote fantástico para o R que permite baixar microdados do Datasus de forma simples e rápida. Ele chama microdatasus e dá acesso a 43 sistemas diferentes no momento da escrita desse post:

  • SIH-RD
  • SIH-RJ
  • SIH-SP
  • SIH-ER
  • SIM-DO
  • SIM-DOFET
  • SIM-DOEXT
  • SIM-DOINF
  • SIM-DOMAT
  • SINASC
  • CNES-LT
  • CNES-ST
  • CNES-DC
  • CNES-EQ
  • CNES-SR
  • CNES-HB
  • CNES-PF
  • CNES-EP
  • CNES-RC
  • CNES-IN
  • CNES-EE
  • CNES-EF
  • CNES-GM
  • SIA-AB
  • SIA-ABO
  • SIA-ACF
  • SIA-AD
  • SIA-AN
  • SIA-AM
  • SIA-AQ
  • SIA-AR
  • SIA-ATD
  • SIA-PA
  • SIA-PS
  • SIA-SAD
  • SINAN-DENGUE-FINAL
  • SINAN-DENGUE-PRELIMINAR
  • SINAN-CHIKUNGUNYA-FINAL
  • SINAN-CHIKUNGUNYA-PRELIMINAR
  • SINAN-ZIKA-FINAL
  • SINAN-ZIKA-PRELIMINAR
  • SINAN-MALARIA-FINAL
  • SINAN-MALARIA-PRELIMINAR

Se eu quiser saber, por exemplo, quantas pessoas do RN morreram desde 1996 (o primeiro ano disponível no banco de dados), basta eu rodar o seguinte código:

# o pacote nao estah disponivel no CRAN, entao eh preciso
# usar o pacote devtools para instala-lo
# 
# devtools::install_github("rfsaldanha/microdatasus")
library(microdatasus)

mortalidade_RN <- 
  fetch_datasus(year_start = 1996, 
                year_end = 2021,
                information_system = "SIM-DO",
                uf = "RN",
                vars = "DTOBITO")
## Your local Internet connection seems to be ok.
## DataSUS FTP server seems to be up. Starting download...

Em seguida, é preciso processar os dados de data em formato de data, para poder excluir informações sobre os anos.

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.1
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
theme_set(theme_bw())

mortalidade_RN <- 
  mortalidade_RN |> 
  mutate(DTOBITO = dmy(DTOBITO)) |> 
  mutate(ano = year(DTOBITO))

Por fim, basta contar quantos óbitos ocorreram por ano e plotar esses resultados:

mortalidade_RN |> 
  count(ano) |> 
  ggplot(aes(x = ano, y = n)) +
  geom_line() +
  labs(x = "Ano", y = "Número de Óbitos")

Muito fácil, não? Instale o pacote microdatasus e faça as suas próprias análises.