# 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)
