# Cargando las librerías necesarias
#install.packages("readxl")
#install.packages("dplyr")
#install.packages("ggplot2")
library(readxl)
library(dplyr)
library(ggplot2)

# Cargando los datos
datos <- read_excel("Cemento_Construccion.xlsx")

# Echando un vistazo a los primeros datos
head(datos)
## # A tibble: 6 × 9
##   `Área Geográfica` `Precio de Cemento por Libra (USD)` `Tipología de Cemento`
##   <chr>                                           <dbl> <chr>                 
## 1 Rural                                            0.33 Escoria               
## 2 Rural                                            0.34 Escoria               
## 3 Rural                                            0.42 Compuesto             
## 4 Urbana                                           0.4  Aluminoso             
## 5 Rural                                            0.5  Escoria               
## 6 Urbana                                           0.23 Aluminoso             
## # ℹ 6 more variables: `Almacenaje del Cemento` <chr>,
## #   `Normas de Calidad del Cemento` <chr>, `Uso del Cemento` <chr>,
## #   `Periodo de Utilidad del Cemento (Meses)` <dbl>,
## #   `Temperatura de Almacenaje Óptima (°C)` <dbl>,
## #   `Humedad de Almacenaje Óptima (%)` <dbl>
#Análisis Exploratorio de Datos
#Resumen estadístico de los precios en áreas urbanas y rurales

datos %>%
  group_by(`Área Geográfica`) %>%
  summarise(Precio_Promedio = mean(`Precio de Cemento por Libra (USD)`, na.rm = TRUE),
            Min_Precio = min(`Precio de Cemento por Libra (USD)`, na.rm = TRUE),
            Max_Precio = max(`Precio de Cemento por Libra (USD)`, na.rm = TRUE))
## # A tibble: 2 × 4
##   `Área Geográfica` Precio_Promedio Min_Precio Max_Precio
##   <chr>                       <dbl>      <dbl>      <dbl>
## 1 Rural                       0.355       0.2         0.5
## 2 Urbana                      0.361       0.22        0.5
#Visualización de los precios por área geográfica y tipología
g <- ggplot(datos, aes(x = `Tipología de Cemento`, y = `Precio de Cemento por Libra (USD)`, fill = `Área Geográfica`)) +
  geom_bar(stat = "identity", position = position_dodge()) +
  geom_text(aes(label = sprintf("$%.2f", `Precio de Cemento por Libra (USD)`)), 
            position = position_dodge(width = 0.9), vjust = -0.25, color = "black", size = 3.5) +
  labs(title = "Precio de Cemento por Tipo y Área Geográfica", x = "Tipo de Cemento", y = "Precio (USD)") +
  theme_minimal()

# Verificar que el gráfico aparece en la pestaña de gráficos
print(g)

#Análisis de condiciones de almacenaje por área geográfica
datos %>%
  group_by(`Área Geográfica`, `Almacenaje del Cemento`) %>%
  summarise(Media_Temperatura = mean(`Temperatura de Almacenaje Óptima (°C)`, na.rm = TRUE),
            Media_Humedad = mean(`Humedad de Almacenaje Óptima (%)`, na.rm = TRUE))
## # A tibble: 4 × 4
## # Groups:   Área Geográfica [2]
##   `Área Geográfica` `Almacenaje del Cemento` Media_Temperatura Media_Humedad
##   <chr>             <chr>                                <dbl>         <dbl>
## 1 Rural             Exterior                              17.1          56.1
## 2 Rural             Interior                              18.2          55.7
## 3 Urbana            Exterior                              18.2          54.9
## 4 Urbana            Interior                              18.8          54.4
# Análisis de las condiciones de almacenaje
datos_resumidos <- datos %>%
  group_by(`Área Geográfica`, `Almacenaje del Cemento`) %>%
  summarise(Media_Temperatura = mean(`Temperatura de Almacenaje Óptima (°C)`, na.rm = TRUE),
            Media_Humedad = mean(`Humedad de Almacenaje Óptima (%)`, na.rm = TRUE),
            .groups = 'drop')

g <- ggplot(datos_resumidos, aes(x = `Almacenaje del Cemento`, y = Media_Temperatura, fill = `Área Geográfica`)) +
  geom_col(position = position_dodge()) +
  geom_text(aes(label = sprintf("%.1f°C", Media_Temperatura)),
            position = position_dodge(width = 0.9), vjust = -0.3, size = 3.5) +
  facet_wrap(~`Área Geográfica`) +
  labs(title = "Temperatura Media de Almacenaje por Tipo y Área", y = "Temperatura Media (°C)", x = "Tipo de Almacenaje") +
  theme_minimal()

# Mostrar el gráfico
print(g)

# Relación entre normas de calidad y uso del cemento
datos %>%
  count(`Normas de Calidad del Cemento`, `Uso del Cemento`) %>%
  ggplot(aes(x = `Normas de Calidad del Cemento`, y = n, fill = `Uso del Cemento`)) +
  geom_bar(stat = "identity", position = position_fill()) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(title = "Relación entre Normas de Calidad y Uso del Cemento", y = "Frecuencia Relativa", x = "Normas de Calidad")

# Análisis de durabilidad del cemento
datos_resumidos <- datos %>%
  group_by(`Área Geográfica`, `Tipología de Cemento`) %>%
  summarise(Durabilidad_Promedio = mean(`Periodo de Utilidad del Cemento (Meses)`, na.rm = TRUE), .groups = 'drop')

g <- ggplot(datos_resumidos, aes(x = `Tipología de Cemento`, y = Durabilidad_Promedio, fill = `Área Geográfica`)) +
  geom_bar(stat = "identity", position = position_dodge()) +
  geom_text(aes(label = sprintf("%.0f", Durabilidad_Promedio)),
            position = position_dodge(width = 0.9), vjust = -0.25, size = 3.5) +
  labs(title = "Durabilidad Promedio del Cemento por Tipo y Área", x = "Tipo de Cemento", y = "Durabilidad Promedio (Meses)") +
  theme_minimal()

# Mostrar el gráfico
print(g)