library(tidyverse)
library(janitor)
Aula 5 - Teste Final
1 Aula Final
Seja bem-vindo a quinta e última aula do nosso minicurso de Fundamentos de Processamento de Dados Utilizando o Tidyverse!
Parabéns, você concluiu a jornada!!
2 Mortalidade no Brasil
Os dados trabalhados nessa aula final foram retirados do DAENT - Departamento de Análise Epidemiológica e Vigilância de Doenças Não Transmissíveis, sendo dados da mortalidade (CID-10)
- Nosso objetivo é ajustar os dados para uma análise estatística, onde desejamos comparar como os dados se apresentam nas diferentes regiões do Brasil.
Assim, as seguintes tabelas devem ser montadas
- Dados Base
- Tabela base, com número de mortos por UF e por data. Deve conter chaves de referência para tabelas de UFs e Regiões
- Tabela UFs
- Tabela com informações das UFs, deve conter uma chave de UF, chave de Região, nome da UF e posteriormente a população daquela UF
- Tabela Regiões
- Tabela com informações das Regiões, deve conter uma chave de Região, nome da Região e posteriormente a população daquela Região
2.1 Tabela de Dados Base
Os dados baixados possuem a seguinte aparência
read_csv2(here::here('./conjunto_de_dados/cid10_2023.csv')) |>
::paged_table() rmarkdown
Iremos construir as colunas: data, nome da uf, codigo do IBGE da UF e número de mortes
= read_csv2(here::here('./conjunto_de_dados/cid10_2023.csv')) |>
df_cid10_uf clean_names() |>
select('abrangencia_nome':'junho') |>
pivot_longer('janeiro':'junho') |>
mutate(name =
case_when(name == 'janeiro' ~ '2023-01-01',
== 'fevereiro' ~ '2023-02-01',
name == 'marco' ~ '2023-03-01',
name == 'abril' ~ '2023-04-01',
name == 'maio' ~ '2023-05-01',
name == 'junho' ~ '2023-06-01')) |>
name rename(data = name,
mortes_cid10 = value) |>
::filter(abrangencia_nome == 'Unidade da federação') |>
dplyrrename(cod_uf = localidade_uid,
uf_nome = localidade_nome) |>
select(data,
uf_nome,
cod_uf, |>
mortes_cid10) mutate(data = data |>
::ymd()) |>
lubridatemutate(uf_nome = uf_nome |>
::str_replace_all(' ', "_") |>
stringrtolower() |>
::rm_accent()
abjutils
)
|>
df_cid10_uf ::paged_table() rmarkdown
2.2 Tabela de Municípios e UFs
- UFs
library(rvest)
= rvest::read_html('https://www.ibge.gov.br/explica/codigos-dos-municipios.php')
url
=
tbl_ufs tibble(
uf = url|>
::html_nodes('.uf td:nth-child(1) a')|>
rvest::html_text() |>
rvest::str_replace_all(' ', "_"),
stringrcod_uf = url|>
::html_nodes('.numero a')|>
rvest::html_text()
rvest|>
) ::mutate(
dplyrcod_uf = cod_uf |>
::str_remove('ver municípios') |>
stringras.numeric(),
uf = uf |>
tolower() |>
::rm_accent()
abjutils|>
) mutate(cod_reg = cod_uf |>
as.character() |>
::str_sub(1,1) |>
stringras.numeric())
- Tabela de Regiões
=
tbl_regs tibble(reg =
c('norte',
'nordeste',
'sudeste',
'sul',
'centro_oeste'),
cod_reg =
c(1,2,3,4,5))
3 Realizando a Análise
=
df_cid10_regs |>
df_cid10_uf inner_join(tbl_ufs, by = 'cod_uf') |>
inner_join(tbl_regs, by = 'cod_reg') |>
group_by(data, reg, cod_reg) |>
summarise(mortes_cid10 = sum(mortes_cid10))
|>
df_cid10_regs ggplot(aes(x = data, y = mortes_cid10, color = reg)) +
geom_line()
Se desejássemos realizar um ajuste via tamanho populacional
4 Adicionando População
Ajustando as tabelas de UFs e Regiões para terem a informação de tamanho populacional
A população foi retirada do site do IBGE, sendo estimativas populacionais para 2021
= readxl::read_xls(here::here('./conjunto_de_dados/pop_2023.xls'),
pop_estim_uf n_max = 35) |>
row_to_names(1) |>
remove_empty(which = 'cols') |>
clean_names() |>
filter(brasil_e_unidades_da_federacao |>
::str_detect('Região') == F &
stringr|>
brasil_e_unidades_da_federacao ::str_detect('Brasil') == F) |>
stringrrename(uf = brasil_e_unidades_da_federacao,
pop = populacao_estimada) |>
mutate(uf = uf |>
::rm_accent() |>
abjutilstolower()|>
::str_replace_all(' ', "_")) |>
stringrmutate(pop = pop |>
::str_remove_all('\\(\\d+\\)') |>
stringr::str_remove_all('\\.') |>
stringras.numeric()
)
|>
pop_estim_uf ::paged_table() rmarkdown
= tbl_ufs |>
tbl_ufs_pop inner_join(pop_estim_uf, by = 'uf')
|>
tbl_ufs_pop ::paged_table() rmarkdown
= tbl_ufs_pop |>
tbl_regs_pop group_by(cod_reg) |>
summarise(pop = sum(pop)) |>
inner_join(tbl_regs, by = 'cod_reg') |>
relocate(reg, .before = pop)
|>
tbl_regs_pop ::paged_table() rmarkdown
=
df_cid10_regs |>
df_cid10_uf inner_join(tbl_ufs_pop, by = 'cod_uf') |>
inner_join(tbl_regs_pop, by = 'cod_reg') |>
group_by(data, reg, cod_reg) |>
summarise(mortes_cid10 = sum(mortes_cid10)) |>
inner_join(tbl_regs_pop, by = 'cod_reg') |>
ungroup()
|>
df_cid10_regs ::paged_table() rmarkdown
|>
df_cid10_regs mutate(mortes_pop = mortes_cid10/pop) |>
ggplot(aes(x = data, y = mortes_pop, color = reg.y)) +
geom_line()
5 Chegou Sua Vez
Agora o bastão está com você, estude alguma região do seu interesse. Prepare os dados dos estados dessa região, adicionando variáveis de seu interesse para melhor estudar a variável mortalidade
A tarefa será aberta de maneira oficial na quarta-feira(20), onde você terá uma mês para realizá-la.
Aproveite esse tempo para estudar, e lembre-se, qualquer dúvida, é so me mandar um email.
Muito obrigado pela parceira durante essas 2 semanas!
Abraços e boas festas. Gustavo