# 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

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.