# Llamar a las librerias
library(sf) # Para trabajar con datos geoespaciales en formato Simple Features (SF)
## Linking to GEOS 3.11.0, GDAL 3.5.3, PROJ 9.1.0; sf_use_s2() is TRUE
library(dplyr) # Para manipulaci?n de datos
##
## 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(leaflet) # Para crear mapas interactivos
# Cargar los datos desde el archivo CSV
data <- read.csv("/Users/ofna19/Desktop/Evidencia INDIVIDUAL/industria_empresa_county_ciudad.csv")
# Leer el archivo geojson con los l?mites de los condados de Texas
geojson_data <- st_read("/Users/ofna19/Desktop/Evidencia INDIVIDUAL/Texas Counties Map.geojson")
## Reading layer `Texas Counties Map' from data source
## `/Users/ofna19/Desktop/Evidencia INDIVIDUAL/Texas Counties Map.geojson'
## using driver `GeoJSON'
## Simple feature collection with 254 features and 12 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -106.6462 ymin: 25.83722 xmax: -93.5078 ymax: 36.50038
## Geodetic CRS: WGS 84
# Agregar una columna de recuento de empresas por condado
data_county <- data %>%
group_by(county) %>%
summarise(empresa_count = n(),
Aeroespacial = sum(Industria == "Aeroespacial"),
Medicina = sum(Industria == "Equipo medico"),
Automotriz = sum(Industria == "Automotriz"),
Tecnologia = sum(Industria == "Tecnologia"))
# Combinar los datos del recuento de empresas con los datos geojson por nombre de condado
geojson_data <- merge(geojson_data, data_county, by.x = "name", by.y = "county", all.x = TRUE)
# Crear una paleta de colores personalizada (de claro a oscuro)
colores_personalizados <- colorRampPalette(c("lightblue", "darkblue"))(10)
# Crear un DataFrame con los condados y su frecuencia de aparici?n
condados_frecuencia <- data.frame(
Condado = c("Angelina", "Austin", "Bastrop", "Bexar", "Bloomington", "Boise", "Bosque", "Brazoria", "Brazos", "Cameron", "Chandler", "Collin", "Culberson", "Dallas", "Denton", "Durham", "Ector", "El Paso", "Ellis", "Fort Bend", "Franklin", "Fremont", "Galveston", "Greensboro", "Gregg", "Guadalupe", "Harris", "Harrison", "Hays", "Henderson", "Hidalgo", "Hillsboro", "Jefferson", "Johnson", "Kendall", "Kimble", "Lavaca", "Lowell", "Massachusetts", "McLennan", "Midland", "Milpitas", "Montgomery", "Newport Beach", "North Reading", "Norwood", "Nueces", "Palo Pinto", "Parker", "Phoenix", "Potter", "San Diego", "San Jose", "Santa Clara", "Seul", "Smith", "Tarrant", "Tom Green", "Travis", "Washington", "Wichita", "Williamson", "Wilson", "Woburn"),
Frecuencia = c(2, 4, 1, 63, 1, 1, 1, 3, 5, 4, 1, 14, 2, 92, 9, 1, 1, 17, 2, 4, 12, 1, 1, 3, 1, 1, 7, 115, 1, 1, 1, 4, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 1, 1, 1, 2, 1, 5, 8, 1, 2, 1, 84, 1, 2, 6, 1)
)
# Crear una paleta de colores de blanco a azul oscuro
colores_personalizados <- colorRampPalette(c("white", "blue"))(10)
# Definir los rangos para la leyenda
rangos <- quantile(condados_frecuencia$Frecuencia, probs = seq(0, 1, length.out = 11), na.rm = TRUE)
# Asignar colores a los rangos
colores_condados <- colores_personalizados[findInterval(condados_frecuencia$Frecuencia, rangos)]
# Agregar una columna de colores al DataFrame original
condados_frecuencia$Color <- colores_condados
# Imprimir el DataFrame con los condados, frecuencia y colores asignados
#-- print(condados_frecuencia)
# Crear un mapa interactivo de Texas con condados sombreados
mapa_texas <- leaflet(geojson_data) %>% # Crear un objeto de mapa interactivo utilizando los datos geoespaciales geojson_data
addTiles() %>% # Agregar una capa de mapas base
addPolygons( # Agregar una capa de pol?gonos (condados)
fillColor = ~ifelse(name %in% condados_frecuencia$Condado, condados_frecuencia$Color[match(name, condados_frecuencia$Condado)], "white"), # Color de relleno basado en el DataFrame condados_frecuencia
fillOpacity = 0.7, # Opacidad del color de relleno
color = "white", # Color del borde de los pol?gonos
weight = 1, # Grosor del borde de los pol?gonos
highlight = highlightOptions( # Opciones de resaltado al pasar el cursor sobre los condados
weight = 3, # Grosor del borde de resaltado
color = "black", # Color del borde de resaltado
bringToFront = TRUE # Traer al frente al resaltar
),
label = ~paste(name, "\n",
"Total Empresas:", empresa_count, "\n",
"Aeroespacial:", Aeroespacial, "\n",
"Equipo Medico:", Medicina, "\n",
"Automotriz:", Automotriz, "\n",
"Tecnologia:", Tecnologia)
)
# Mostrar el mapa interactivo
mapa_texas