---
title: "Informe Técnico: Perfil da População em situação de rua no estado de Roraima - Dezembro/2025 - ISBN: 978-65-86750-99-7"
output:
rmdformats::readthedown:
css: styles.css
---
{width=100%}
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, warning = FALSE, message = FALSE)
library(tidyverse)
library(rio)
library(kableExtra)
library(knitr)
library(RColorBrewer)
library(readxl)
library(janitor)
library(tmap)#
require(rgdal)#
library(spdep)#
library(sf)#
library(tidyr)#
library(RColorBrewer)#
library(raster)#
library(sf)#
library(leaflet)
library(leaflet.extras)
trata_dados <- function(dados, nome_coluna){
# selecionando colunas e linhas de interesse
dados <- dados[3:(nrow(dados)-1), c(1,3,5)]
colnames(dados) <- c(nome_coluna, "Freq","Total")
dados <- dados %>%
mutate_at(2:3, as.numeric)
return(dados)
}
clean_column_names <- function(df) {
# Obter os nomes das colunas
col_names <- names(df)
# Remover "..." e números dos nomes das colunas
clean_names <- gsub("\\.{3}|[0-9]", "", col_names)
# Atribuir os novos nomes de coluna ao dataframe
names(df) <- clean_names
return(df)
}
dados_completos <- import("Pop Rua Brasil.xlsx", skip = 1)
# cores para gráficos quando o número de categorias é grande
cores_laranja <- colorRampPalette(brewer.pal(20, "Oranges"))(20)
cores_laranja <- rev(cores_laranja)
# cor ou raça: coluna 4 a 15
# faixa etaria: coluna 16 a 43
# grau instrucao: coluna 44 a 57
# ult atualizacao: coluna 58 a 71
# deficiencia: coluna 72 a 77
# sexo: coluna 78 a 83
```
# Qual o perfil da população em situação de rua no estado de Roraima?
## Cor ou raça
```{r}
tema <- "Cor/raça"
dados <- dados_completos %>%
filter(`ESTADO/DF` == "Roraima") %>% dplyr::select(4:15) %>%
dplyr::select(!contains("%"))
dados <- clean_column_names(dados)
dados <- dados %>%
pivot_longer(cols = colnames(dados),
names_to = "categoria", values_to = "Freq")
dados <- as.data.frame(dados)
dados[,1] <- gsub("Preta","Negra",dados[,1])
dados[,1] <- gsub("Parda","Negra",dados[,1])
dados <- dados %>%
group_by(categoria) %>%
summarise(Freq = sum(Freq))
(dados) %>%
ggplot() +
aes(x = fct_rev(categoria), y = Freq, fill = categoria) +
geom_col() +
scale_fill_hue(direction = 1) +
theme_minimal() + scale_fill_hue(direction = 1) +
coord_flip()+
labs(x = tema, y = "Frequência")+
theme(legend.position = "none")+
geom_label(aes(x = categoria, y = Freq,
label =Freq),
size = 3, fill = "white")+
scale_fill_manual(values = cores_laranja)
```
```{r}
dados %>% dplyr::select(1:2) %>%
mutate(perc = scales::label_percent()(Freq / sum(Freq))) %>%
rbind(c("Total", sum(dados$Freq), "100%")) %>%
kbl(escape = F, align = "c", row.names = FALSE,
digits = 0, centering = T,
col.names = c(tema, "Frequência","%"),
format.args = list(big.mark = ".",decimal.mark = ",")
) %>%
kable_paper("striped", full_width = F,html_font = "Arial") %>%
collapse_rows() %>%
kableExtra::footnote("Fonte: Levantamento realizado pelo Observatório Brasileiro de Políticas Públicas com a População em Situação de Rua/POLOS-UFMG a partir da consulta ao CECAD (Mês de Referência: dezembro/2025)")%>%
row_spec(0, background = "rgb(255,69,0)", color = "black") %>%
row_spec(c(0,nrow(dados) + 1), bold = TRUE)
```
## Faixa Etária
```{r}
tema <- "Faixa etária"
dados <- dados_completos %>%
filter(`ESTADO/DF` == "Roraima") %>% dplyr::select(16:43) %>%
dplyr::select(!contains("%"))
#dados <- clean_column_names(dados)
dados <- dados %>%
pivot_longer(cols = colnames(dados),
names_to = "categoria", values_to = "Freq")
dados <- as.data.frame(dados)
dados <- dados %>% mutate(categoria = gsub("Sem Resposta...42",
"Sem Resposta",
categoria))
dados[1:which(grepl("17",dados[,1]) == TRUE),1] <- "0 a 17 anos"
dados[(which(grepl("18",dados[,1]) == TRUE)):
which(grepl("39",dados[,1]) == TRUE),1] <- "18 a 39 anos"
dados[(which(grepl("40",dados[,1]) == TRUE)):
which(grepl("59",dados[,1]) == TRUE),1] <- "40 a 59 anos"
dados[(which(grepl("60",dados[,1]) == TRUE)) :
(which(grepl("Sem Resposta",dados[,1]) == TRUE) - 1),1] <- "60 anos ou mais"
dados <- dados %>%
group_by(categoria) %>%
summarise(Freq = sum(Freq))
(dados) %>%
ggplot() +
aes(x = fct_rev(categoria), y = Freq, fill = categoria) +
geom_col() +
scale_fill_hue(direction = 1) +
theme_minimal() + scale_fill_hue(direction = 1) +
coord_flip()+
labs(x = tema, y = "Frequência")+
theme(legend.position = "none")+
geom_label(aes(x = categoria, y = Freq,
label =Freq),
size = 3, fill = "white")+
scale_fill_manual(values = cores_laranja)
```
```{r}
dados %>% dplyr::select(1:2) %>%
mutate(perc = scales::label_percent()(Freq / sum(Freq))) %>%
rbind(c("Total", sum(dados$Freq), "100%")) %>%
kbl(escape = F, align = "c", row.names = FALSE,
digits = 0, centering = T,
col.names = c(tema, "Frequência","%"),
format.args = list(big.mark = ".",decimal.mark = ",")
) %>%
kable_paper("striped", full_width = F,html_font = "Arial") %>%
collapse_rows() %>%
kableExtra::footnote("Fonte: Levantamento realizado pelo Observatório Brasileiro de Políticas Públicas com a População em Situação de Rua/POLOS-UFMG a partir da consulta ao CECAD (Mês de Referência: dezembro/2025)")%>%
row_spec(0, background = "rgb(255,69,0)", color = "black") %>%
row_spec(c(0,nrow(dados) + 1), bold = TRUE)
```
## Grau de instrução
```{r}
tema <- "Grau de instrução"
dados <- dados_completos %>%
filter(`ESTADO/DF` == "Roraima") %>% dplyr::select(44:57) %>%
dplyr::select(!contains("%"))
dados <- clean_column_names(dados)
dados <- dados %>%
pivot_longer(cols = colnames(dados),
names_to = "categoria", values_to = "Freq")
dados <- as.data.frame(dados)
dados <- dados %>%
group_by(categoria) %>%
summarise(Freq = sum(Freq))
(dados) %>%
ggplot() +
aes(x = fct_rev(categoria), y = Freq, fill = categoria) +
geom_col() +
scale_fill_hue(direction = 1) +
theme_minimal() + scale_fill_hue(direction = 1) +
coord_flip()+
labs(x = tema, y = "Frequência")+
theme(legend.position = "none")+
geom_label(aes(x = categoria, y = Freq,
label =Freq),
size = 3, fill = "white")+
scale_fill_manual(values = cores_laranja)
```
```{r}
dados %>% dplyr::select(1:2) %>%
mutate(perc = scales::label_percent()(Freq / sum(Freq))) %>%
rbind(c("Total", sum(dados$Freq), "100%")) %>%
kbl(escape = F, align = "c", row.names = FALSE,
digits = 0, centering = T,
col.names = c(tema, "Frequência","%"),
format.args = list(big.mark = ".",decimal.mark = ",")
) %>%
kable_paper("striped", full_width = F,html_font = "Arial") %>%
collapse_rows() %>%
kableExtra::footnote("Fonte: Levantamento realizado pelo Observatório Brasileiro de Políticas Públicas com a População em Situação de Rua/POLOS-UFMG a partir da consulta ao CECAD (Mês de Referência: dezembro/2025)")%>%
row_spec(0, background = "rgb(255,69,0)", color = "black") %>%
row_spec(c(0,nrow(dados) + 1), bold = TRUE)
```
## Número de meses após a última atualização cadastral
```{r}
tema <- "Número de meses após a última atualização cadastral"
dados <- dados_completos %>%
filter(`ESTADO/DF` == "Roraima") %>%
dplyr::select(58:71) %>%
dplyr::select(!contains("%")) %>%
pivot_longer(cols = colnames(.), names_to = "categoria", values_to = "Freq") %>%
mutate(categoria = gsub("Sem Resposta...70", "Sem Resposta", categoria)) %>%
group_by(categoria) %>%
summarise(Freq = sum(Freq)) %>%
mutate(categoria = factor(categoria, levels = c("até 12 Meses",
"13 a 18 Meses",
"19 a 24 Meses",
"25 a 36 Meses",
"37 a 48 Meses",
"acima de 48 Meses",
"Sem Resposta"))) %>%
arrange(categoria)
(dados) %>%
ggplot() +
aes(x = fct_rev(categoria), y = Freq, fill = categoria) +
geom_col() +
scale_fill_hue(direction = 1) +
theme_minimal() + scale_fill_hue(direction = 1) +
coord_flip()+
labs(x = tema, y = "Frequência")+
theme(legend.position = "none")+
geom_label(aes(x = categoria, y = Freq,
label =Freq),
size = 3, fill = "white")+
scale_fill_manual(values = cores_laranja)
```
```{r}
dados %>% dplyr::select(1:2) %>%
mutate(categoria = as.character(categoria)) %>%
mutate(perc = scales::label_percent()(Freq / sum(Freq)) ) %>%
rbind(c("Total", sum(dados$Freq), "100%")) %>%
kbl(escape = F, align = "c", row.names = FALSE,
digits = 0, centering = T,
col.names = c(tema, "Frequência","%"),
format.args = list(big.mark = ".",decimal.mark = ",")
) %>%
kable_paper("striped", full_width = F,html_font = "Arial") %>%
collapse_rows() %>%
kableExtra::footnote("Fonte: Levantamento realizado pelo Observatório Brasileiro de Políticas Públicas com a População em Situação de Rua/POLOS-UFMG a partir da consulta ao CECAD (Mês de Referência: dezembro/2025)")%>%
row_spec(0, background = "rgb(255,69,0)", color = "black") %>%
row_spec(c(0,nrow(dados) + 1), bold = TRUE)
```
## Possui deficiência?
```{r}
tema <- "Possui deficiência?"
dados <- dados_completos %>%
filter(`ESTADO/DF` == "Roraima") %>% dplyr::select(72:77) %>%
dplyr::select(!contains("%"))
dados <- clean_column_names(dados)
dados <- dados %>%
pivot_longer(cols = colnames(dados),
names_to = "categoria", values_to = "Freq")
dados <- as.data.frame(dados)
dados <- dados %>%
group_by(categoria) %>%
summarise(Freq = sum(Freq))
dados <- dados %>%
mutate(categoria = factor(categoria, levels = c("Sim",
"Não",
"Sem Resposta") )) %>%
arrange(categoria)
(dados) %>%
ggplot() +
aes(x = fct_rev(categoria), y = Freq, fill = categoria) +
geom_col() +
scale_fill_hue(direction = 1) +
theme_minimal() + scale_fill_hue(direction = 1) +
coord_flip()+
labs(x = tema, y = "Frequência")+
theme(legend.position = "none")+
geom_label(aes(x = categoria, y = Freq,
label =Freq),
size = 3, fill = "white")+
scale_fill_manual(values = cores_laranja)
```
```{r}
dados %>% dplyr::select(1:2) %>%
mutate(categoria = as.character(categoria)) %>%
mutate(perc = scales::label_percent()(Freq / sum(Freq))) %>%
rbind(c("Total", sum(dados$Freq), "100%")) %>%
kbl(escape = F, align = "c", row.names = FALSE,
digits = 0, centering = T,
col.names = c(tema, "Frequência","%"),
format.args = list(big.mark = ".",decimal.mark = ",")
) %>%
kable_paper("striped", full_width = F,html_font = "Arial") %>%
collapse_rows() %>%
kableExtra::footnote("Fonte: Levantamento realizado pelo Observatório Brasileiro de Políticas Públicas com a População em Situação de Rua/POLOS-UFMG a partir da consulta ao CECAD (Mês de Referência: dezembro/2025)")%>%
row_spec(0, background = "rgb(255,69,0)", color = "black") %>%
row_spec(c(0,nrow(dados) + 1), bold = TRUE)
```
## Sexo
```{r}
tema <- "Sexo"
dados <- dados_completos %>%
filter(`ESTADO/DF` == "Roraima") %>% dplyr::select(78:83) %>%
dplyr::select(!contains("%"))
dados <- clean_column_names(dados)
dados <- dados %>%
pivot_longer(cols = colnames(dados),
names_to = "categoria", values_to = "Freq")
dados <- as.data.frame(dados)
dados <- dados %>%
group_by(categoria) %>%
summarise(Freq = sum(Freq))
dados <- dados %>%
mutate(categoria = factor(categoria, levels = c("Masculino",
"Feminino",
"Sem Resposta") )) %>%
arrange(categoria)
(dados) %>%
ggplot() +
aes(x = fct_rev(categoria), y = Freq, fill = categoria) +
geom_col() +
scale_fill_hue(direction = 1) +
theme_minimal() + scale_fill_hue(direction = 1) +
coord_flip()+
labs(x = tema, y = "Frequência")+
theme(legend.position = "none")+
geom_label(aes(x = categoria, y = Freq,
label =Freq),
size = 3, fill = "white")+
scale_fill_manual(values = cores_laranja)
```
```{r}
dados %>% dplyr::select(1:2) %>%
mutate(categoria = as.character(categoria)) %>%
mutate(perc = scales::label_percent()(Freq / sum(Freq))) %>%
rbind(c("Total", sum(dados$Freq), "100%")) %>%
kbl(escape = F, align = "c", row.names = FALSE,
digits = 0, centering = T,
col.names = c(tema, "Frequência","%"),
format.args = list(big.mark = ".",decimal.mark = ",")
) %>%
kable_paper("striped", full_width = F,html_font = "Arial") %>%
collapse_rows() %>%
kableExtra::footnote("Fonte: Levantamento realizado pelo Observatório Brasileiro de Políticas Públicas com a População em Situação de Rua/POLOS-UFMG a partir da consulta ao CECAD (Mês de Referência: dezembro/2025)")%>%
row_spec(0, background = "rgb(255,69,0)", color = "black") %>%
row_spec(c(0,nrow(dados) + 1), bold = TRUE)
```
# Os 8 municípios com o maior número de pessoas em situação de rua no estado do Roraima
```{r}
dezRR <- read_excel("dezRR.xlsx") %>%
mutate(`% Total Pop. em situação de rua` = paste0(round(`% Total Pop. em situação de rua` * 100, 2), "%"))
dezRR <- dezRR %>%
kable("html", align = "c", escape = FALSE) %>%
kable_styling(full_width = FALSE, position = "center", font_size = 17) %>%
row_spec(0, background = "rgb(255,69,0)", color = "black")
dezRR
```
- Os 8 municípios listados abrigam toda a população em situação de rua do estado, representando 100% do total.
# Pessoas em situação de rua por município na Região Metropolitana de Boa Vista-RR
```{r}
baseRR <- read_excel("Base RR.xlsx", sheet =3, skip = 1)
colnames(baseRR)[3] <- "Municípios"
metroRR <- baseRR %>%
dplyr::select(Microrregião, Mesorregião,Municípios, `Total Pop. em situação de rua`,`% Total Pop. em situação de rua`)
muni_metroRR <- c("Alto Alegre", "Boa Vista", "Bonfim", "Cantá", "Mucajaí")
# metroRR <- subset(metroRR, Municípios %in% muni_metroRR)
# #
# arquivo <- "metropolitana_RR.xlsx"
# # # Escreva o data frame no arquivo XLSX
# write.xlsx(metroRR, file = arquivo, rowNames = FALSE)
metroTabRR <- read_excel("metropolitana_RR.xlsx") %>%
mutate(`% Total Pop. em situação de rua` = paste0(round(`% Total Pop. em situação de rua` * 100, 2), "%"))
metroTabRR <- metroTabRR %>%
kable("html", align = "c", escape = FALSE) %>%
kable_styling(full_width = FALSE, position = "center", font_size = 17) %>%
row_spec(0, background = "rgb(255,69,0)", color = "black")
metroTabRR
```
- A Região Metropolitana de Boa Vista-RR é responsável por 99,80% da população em situação de rua de todo o estado
# Mapeamento da População em Situação de Rua: Municípios, Mesorregiões e Microrregiões do Roraima
```{r}
MAPA_RR=shapefile("RR_Municipios_2022.shp")
# todos os aquivos devem estar na mesma pasa até os que nao forem .shp
base_RR <- read_excel("Base RR.xlsx", sheet = 3, skip = 1)
MAPA_RR <- st_as_sf(MAPA_RR, wkt = "geom")
colnames(MAPA_RR)[2] <- "Municípios"
colnames(base_RR)[3] <- "Municípios"
MAPA_RR <- inner_join(MAPA_RR, base_RR, "Municípios")
rm(base_RR)
MAPA_RR <- MAPA_RR[, -1]
```
### Municípios
```{r, message=FALSE}
vals_muni_RR <- sort(unique(MAPA_RR$`Total Pop. em situação de rua`))
pal_muni_RR <- colorFactor(
palette = rev(heat.colors(length(vals_muni_RR))),
domain = vals_muni_RR,
na.color = "#cccccc"
)
leaflet(MAPA_RR) %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addPolygons(
fillColor = ~pal_muni_RR(`Total Pop. em situação de rua`),
fillOpacity = 0.7,
color = "black",
weight = 0.7,
popup = ~paste0(
"Município: ", Municípios, "
",
"Pop. em situação de rua: ", `Total Pop. em situação de rua`
),
highlight = highlightOptions(
weight = 2, color = "#333", bringToFront = TRUE
)
) %>%
addLegend(
pal = pal_muni_RR,
values = ~`Total Pop. em situação de rua`,
title = "PopRua por municípios RR",
position = "bottomright"
)
invisible(gc())
```
### Mesorregiões
```{r, message=FALSE}
mesoRR <- MAPA_RR %>%
dplyr::select(Municípios, Mesorregião, `Total Pop. em situação de rua`) %>%
dplyr::group_by(Mesorregião) %>%
dplyr::summarize(`Total Pop. em situação de rua` = sum(`Total Pop. em situação de rua`))
vals_meso_RR <- sort(unique(mesoRR$`Total Pop. em situação de rua`))
pal_meso_RR <- colorFactor(
palette = rev(heat.colors(length(vals_meso_RR))),
domain = vals_meso_RR,
na.color = "#cccccc"
)
leaflet(mesoRR) %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addPolygons(
fillColor = ~pal_meso_RR(`Total Pop. em situação de rua`),
fillOpacity = 0.7,
color = "black",
weight = 0.7,
popup = ~paste0(
"Mesorregião: ", Mesorregião, "
",
"Pop. em situação de rua: ", `Total Pop. em situação de rua`
),
highlight = highlightOptions(
weight = 2, color = "#333", bringToFront = TRUE
)
) %>%
addLegend(
pal = pal_meso_RR,
values = ~`Total Pop. em situação de rua`,
title = "PopRua por mesorregiões RR",
position = "bottomright"
)
invisible(gc())
```
### Microrregiões
```{r, message=FALSE}
microRR <- MAPA_RR %>%
dplyr::select(Municípios, Microrregião, `Total Pop. em situação de rua`) %>%
dplyr::group_by(Microrregião) %>%
dplyr::summarize(`Total Pop. em situação de rua` = sum(`Total Pop. em situação de rua`))
vals_micro_RR <- sort(unique(microRR$`Total Pop. em situação de rua`))
pal_micro_RR <- colorFactor(
palette = rev(heat.colors(length(vals_micro_RR))),
domain = vals_micro_RR,
na.color = "#cccccc"
)
leaflet(microRR) %>%
addProviderTiles(providers$CartoDB.Positron) %>%
addPolygons(
fillColor = ~pal_micro_RR(`Total Pop. em situação de rua`),
fillOpacity = 0.7,
color = "black",
weight = 0.7,
popup = ~paste0(
"Microrregião: ", Microrregião, "
",
"Pop. em situação de rua: ", `Total Pop. em situação de rua`
),
highlight = highlightOptions(
weight = 2, color = "#333", bringToFront = TRUE
)
) %>%
addLegend(
pal = pal_micro_RR,
values = ~`Total Pop. em situação de rua`,
title = "PopRua por microrregiões RR",
position = "bottomright"
)
invisible(gc())
```
#### Equipe do projeto
```{r}
equipe_table <- read_excel("Rodapé.xlsx") # %>%
#mutate(`% Total Pop. em situação de rua` = paste0(round(`% Total Pop. em situação de rua` * 100, 2), "%"))
equipe_table <- equipe_table %>%
kable("html", align = "c", escape = FALSE) %>%
kable_styling(full_width = FALSE, position = "center", font_size = 17) %>%
row_spec(0, background = "rgb(255,69,0)", color = "black")
equipe_table <- equipe_table %>%
footnote(general = "Organização e Coordenação Técnica/Científica:Prof.
Dr. André Luiz Freitas Dias e Profª.
Drª. Maria Fernanda Salcedo Repolês.
Pesquisadores-extensionistas: Andrezza Cristina Santos, Bárbara Cristina Moreira, Caique Izidoro Alvarenga, Clara Martins Vallone, Cristiano Pereira da Silva, Danielle Santana Neto, Deborah Aparecida Guimarães Teixeira, Diogo Gomes Pires, Evelyn Laura Alves de Souza Costa, Felipe Gonçalves Balestrini, Gabriel Moreira da Silva, Irlana dos Santos Silva, Isabella Melissa Monteiro, Matheus Rondon Navas, Maria Eduarda Magalhães de São Joaquim, Rachel Aparecida de Aguiar Passos, Sara Júlia Faria Ribeiro, Washington Lima dos Santos")
equipe_table
```
```{r}
# #
# equipe_table <- read_excel("Rodapé.xlsx", sheet = 2 ) # %>%
# #mutate(`% Total Pop. em situação de rua` = paste0(round(`% Total Pop. em situação de rua` * 100, 2), "%"))
#
# equipe_table <- equipe_table %>%
# kable("html", align = "c", escape = FALSE) %>%
# kable_styling(full_width = FALSE, position = "center", font_size = 17) %>%
# row_spec(0, background = "rgb(255,69,0)", color = "black")
#
#
# equipe_table <- equipe_table %>%
# footnote(general = "ISSN:")
# equipe_table
```
{width=100%}