1 + 1[1] 2
Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see https://quarto.org.
When you click the Render button a document will be generated that includes both content and the output of embedded code. You can embed code like this:
1 + 1[1] 2
You can add options to executable code like this
[1] 4
The echo: false option disables the printing of code (only output is displayed).
```{r}
#| label: setup
#| include: false
library(sidrar)
library(tidyverse)
library(geobr)
library(sf)
library(leaflet)
library(plotly)
library(reactable)
# 1. BUSCA DE DADOS DO SIDRA
# Tabela 9514 - População residente (Censo 2022) por Estado
dados_sidra <- get_sidra(x = “t/9514/n3/all/v/93/p/all”) |>
clean_names() |>
select(
codigo_uf = estado_codigo,
estado = estado,
populacao = valor
)
# 2. BUSCA DA MALHA GEOGRÁFICA (Estados do Brasil)
malha_estados <- read_state(year = 2022, showProgress = FALSE) |>
mutate(code_state = as.character(code_state))
# 3. UNIÃO DOS DADOS
dados_completos <- malha_estados |>
left_join(dados_sidra, by = c(“code_state” = “codigo_uf”))
```
## Mapa Interativo
População residente por Unidade da Federação (Censo 2022).
```{r}
#| label: mapa
# Ajuste da projeção para o Leaflet (WGS84)
dados_mapa <- st_transform(dados_completos, crs = 4326)
# Criando paleta de cores
pal <- colorNumeric(palette = “YlOrRd”, domain = dados_mapa$populacao)
# Renderizando mapa
leaflet(dados_mapa) |>
addTiles() |>
addPolygons(
fillColor = ~pal(populacao),
weight = 1,
opacity = 1,
color = “white”,
dashArray = “3”,
fillOpacity = 0.7,
highlightOptions = highlightOptions(
weight = 3,
color = “#666”,
dashArray = ““,
fillOpacity = 0.7,
bringToFront = TRUE
),
label = ~paste0(estado,”: “, format(populacao, big.mark =”.”))
) |>
addLegend(
pal = pal,
values = ~populacao,
opacity = 0.7,
title = “População”,
position = “bottomright”
)
```
## Gráfico Estatístico
Distribuição da população por estado de forma comparativa.
```{r}
#| label: grafico
# Ordenando dados para o gráfico
dados_grafico <- dados_sidra |>
arrange(desc(populacao))
# Criando gráfico interativo com Plotly
p <- ggplot(dados_grafico, aes(x = reorder(estado, populacao), y = populacao, text = paste(“Estado:”, estado, “<br>População:”, format(populacao, big.mark = “.”)))) +
geom_col(fill = “steelblue”) +
coord_flip() +
labs(x = “Estado”, y = “População Residente”) +
theme_minimal()
ggplotly(p, tooltip = “text”)
```
## Tabela de Dados
Pesquisando, ordenando e navegando pelos dados oficiais extraídos diretamente do SIDRA.
```{r}
#| label: tabela
dados_tabela <- dados_sidra |>
select(Estado = estado, `População Residente` = populacao)
reactable(
dados_tabela,
searchable = true,
striped = true,
filterable = true,
defaultPageSize = 10,
columns = list(
`População Residente` = colDef(format = colFormat(separators = TRUE, loc = “pt-BR”))
)
)
```