Configurações iniciais do R.
rm(list=ls()) #limpeza do R
#Pacotes Necessário
library(readxl) #ler arquivos em excel
## Warning: package 'readxl' was built under R version 4.2.3
library(ggplot2) #para gerar gráficos
## Warning: package 'ggplot2' was built under R version 4.2.3
library(ggrepel) #para gerar gráficos
## Warning: package 'ggrepel' was built under R version 4.2.3
library(dplyr) #manipulação de dados
## Warning: package 'dplyr' was built under R version 4.2.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr) #manipulação de dados
## Warning: package 'tidyr' was built under R version 4.2.3
library(writexl) #salvar dados em excel
## Warning: package 'writexl' was built under R version 4.2.3
library(plotly) #gráfico dinâmico
## Warning: package 'plotly' was built under R version 4.2.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(leaflet)
## Warning: package 'leaflet' was built under R version 4.2.3
library(leaflet.extras)
library(geosphere) # Para calcular distâncias geográficas
library(lpSolve)
Para a análise de alocação ótima, será apresentada então as duas base de dados. A base de dados de inscritos no EAC e a base de dados com a localização dos padrinhos de carro.
#------------- Setando o diretório ------------- #
setwd("C:/Users/vitor/Downloads/EAC SR")
#--------------- Bases de Dados --------------- #
encontristas <- read_excel("C:/Users/vitor/Downloads/EAC SR/INSCRIÇÕES - IV EAC PARÓQUIA SÃO RAFAEL (respostas).xlsx")
padrinhos <- read_excel("C:/Users/vitor/Downloads/EAC SR/PADRINHOS_EAC.xlsx")
# Criar um mapa base
mapa <- leaflet() %>%
addTiles() %>% # Adiciona os tiles padrão do OpenStreetMap
setView(lng = mean(c(padrinhos$LONGITUDE, encontristas$LONGITUDE)),
lat = mean(c(padrinhos$LATITUDE, encontristas$LATITUDE)),
zoom = 12)
# Adicionar os padrinhos ao mapa
mapa <- mapa %>%
addCircleMarkers(data = padrinhos,
lat = ~LATITUDE,
lng = ~LONGITUDE,
color = "blue",
radius = 5,
stroke = TRUE,
fillOpacity = 0.8,
popup = ~PADRINHO,
group = "Padrinhos")
# Adicionar os encontristas ao mapa
mapa <- mapa %>%
addCircleMarkers(data = encontristas,
lat = ~LATITUDE,
lng = ~LONGITUDE,
color = "red",
radius = 5,
stroke = TRUE,
fillOpacity = 0.8,
popup = ~PREFERENCIA_NOME,
group = "Encontristas")
# Adicionar camadas ao mapa
mapa <- mapa %>%
addLayersControl(overlayGroups = c("Padrinhos", "Encontristas"),
options = layersControlOptions(collapsed = FALSE))
# Exibir o mapa
mapa
# Passo 1: Agrupar e contar encontristas por bairro
bairro_counts <- encontristas %>%
group_by(BAIRRO) %>%
summarise(Quantidade = n()) %>%
ungroup() %>%
mutate(Percentual = Quantidade / sum(Quantidade) * 100)
# Passo 2: Criar o mapa
mapa_bairro <- leaflet() %>%
addTiles() %>%
setView(lng = mean(encontristas$LONGITUDE_BAIRRO, na.rm = TRUE),
lat = mean(encontristas$LATITUDE_BAIRRO, na.rm = TRUE),
zoom = 12)
# Passo 3: Adicionar círculos de acordo com a quantidade de encontristas por bairro
mapa_bairro <- mapa_bairro %>%
addCircleMarkers(data = bairro_counts,
lat = encontristas$LATITUDE_BAIRRO[match(bairro_counts$BAIRRO, encontristas$BAIRRO)],
lng = encontristas$LONGITUDE_BAIRRO[match(bairro_counts$BAIRRO, encontristas$BAIRRO)],
radius = ~Quantidade / 2, # Ajuste o tamanho do círculo de acordo com a quantidade
color = "red", # Cor mais viva
stroke = TRUE,
fillOpacity = 0.8, # Aumentar opacidade
popup = ~paste(BAIRRO, "<br>Quantidade:", Quantidade, "<br>Percentual:", round(Percentual, 2), "%")) %>%
addLegend("bottomright",
colors = "red",
labels = "Quantidade de Encontristas por Bairro",
title = "Legenda",
opacity = 1)
# Exibir o mapa
mapa_bairro