setwd("~/UCE/III/estadistica")

datos <- read.csv("Conjunto_Datos_Minerales.csv", header = TRUE, sep = ";", 
                  dec = ".")
# 1. Normalizar los datos
commod1 <- tolower(trimws(as.character(datos$commod1)))

# 2. Crear tabla de frecuencias sin agrupar
tabla_commod <- as.data.frame(table(commod1))
names(tabla_commod) <- c("Mineral", "ni")
tabla_commod$ni <- as.numeric(as.character(tabla_commod$ni))
tabla_commod$hi <- (tabla_commod$ni / sum(tabla_commod$ni)) * 100

# 4. Gráfico 1: Frecuencia local (ni)
barplot(tabla_commod$ni,
        names.arg = tabla_commod$Mineral,
        main = "Gráfico No.1: Distribución de cantidad de los minerales",
        xlab = "Mineral",
        ylab = "Cantidad",
        col = "skyblue",
        las = 2,
        cex.names = 0.4,
        cex.axis = 0.5)

# 5. Gráfico 2: Frecuencia global (ni)
barplot(tabla_commod$ni,
        names.arg = tabla_commod$Mineral,
        main = "Gráfico No.2: Distribución de cantidad de los minerales",
        xlab = "Mineral",
        ylab = "Cantidad",
        col = "skyblue",
        las = 2,
        ylim = c(0, length(commod1)),
        cex.names = 0.4,
        cex.axis = 0.5)

# 6. Gráfico 3: Porcentaje global (hi)
barplot(tabla_commod$hi,
        names.arg = tabla_commod$Mineral,
        main = "Gráfico No.3: Distribución de porcentaje de minerales",
        xlab = "Mineral",
        ylab = "Porcentaje",
        col = "lightgreen",
        las = 2,
        ylim = c(0, 100),
        cex.names = 0.4,
        cex.axis = 0.5)

# 7. Gráfico 4: Porcentaje local (hi)
barplot(tabla_commod$hi,
        names.arg = tabla_commod$Mineral,
        main = "Gráfico No.4: Distribución de porcentaje de minerales",
        xlab = "Mineral",
        ylab = "Porcentaje",
        col = "lightgreen",
        las = 2,
        cex.names = 0.4,
        cex.axis = 0.5)

# 8.Agrupar minerales

agrupar_minerales <- function(x) {
  if (x %in% c("gold", "silver", "platinum")) {
    return("Metales preciosos")
  } else if (x %in% c("copper", "lead", "zinc", "nickel", "tin")) {
    return("Metales base")
  } else if (x %in% c("iron", "manganese", "chromium")) {
    return("Metales ferrosos")
  } else if (x %in% c("coal", "uranium")) {
    return("Minerales energéticos")
  } else if (x %in% c("lithium", "borate", "potash", "phosphate", "salt", "gypsum")) {
    return("Minerales industriales")
  } else if (x %in% c("fluorite", "kaolin", "feldspar", "barite")) {
    return("Minerales no metálicos")
  } else if (x %in% c("diamond", "emerald", "ruby", "sapphire")) {
    return("Piedras preciosas")
  } else {
    return("Otros minerales")
  }
}

# 9. Aplicar la función
grupo_commod <- sapply(commod1, agrupar_minerales)

# 10. Crear tabla de frecuencias
tabla_grupo <- as.data.frame(table(grupo_commod))
names(tabla_grupo) <- c("Category", "ni")

# 11. Convertir ni a numérico para evitar errores
tabla_grupo$ni <- as.numeric(as.character(tabla_grupo$ni))

# 12. Calcular porcentaje
tabla_grupo$hi <- round((tabla_grupo$ni / sum(tabla_grupo$ni)) * 100,2)
# 13. Imprimir la tabla grupo
print(tabla_grupo)
##                 Category     ni    hi
## 1           Metales base  25051  8.22
## 2       Metales ferrosos  22331  7.33
## 3      Metales preciosos  63829 20.95
## 4  Minerales energéticos   9062  2.97
## 5 Minerales industriales    527  0.17
## 6 Minerales no metálicos   2369  0.78
## 7        Otros minerales 181047 59.43
## 8      Piedras preciosas    416  0.14
# 14.GDF
#LOCAL ni
barplot(tabla_grupo$ni,
        names.arg = tabla_grupo$Category,
        main = "Gráfico No.5: Distribución de cantidad de la categoría de los minerales",
        xlab = "Categoría",
        ylab = "Cantidad",
        col = "skyblue",
        las = 2,
        cex.names = 0.5,
        cex.axis = 0.5)

#GLOBAL ni
barplot(tabla_grupo$ni,
        names.arg = tabla_grupo$Category,
        main = "Gráfico No.6: Distribución de cantidad de la categoría de los minerales",
        xlab = "Categoría",
        ylab = "Cantidad",
        col = "skyblue",
        las = 2,
        ylim = c(0,length(grupo_commod)),
        cex.names = 0.5,
        cex.axis = 0.5)

#GLOBAL hi
barplot(tabla_grupo$hi,
        names.arg = tabla_grupo$Category,
        main = "Gráfico No.7: Distribución de porcentaje de la categoría de los minerales",
        xlab = "Categoría",
        ylab = "Porcentaje",
        col = "lightgreen",
        las = 2,
        ylim = c(0, 100),
        cex.names = 0.5,
        cex.axis = 0.5)

#LOCAL hi
barplot(tabla_grupo$hi,
        names.arg = tabla_grupo$Category,
        main = "Gráfico No.8: Distribución de porcentaje de la categoría de los minerales",
        xlab = "Categoría",
        ylab = "Porcenataje",
        col = "lightgreen",
        las = 2,
        cex.names = 0.5,
        cex.axis = 0.5)

#DIAGRAMA CIRCULAR

colores_grises <- gray.colors(nrow(tabla_grupo), start = 0.9, end = 0.3)

pie(tabla_grupo$hi,
    labels = NA,
    col = colores_grises,
    main = "Grafico No.9 Distribución por agrupación")

legend("topright",
       legend = paste(tabla_grupo$Category, ": ", round(tabla_grupo$hi, 1), "%"),
       fill = colores_grises,
       cex = 0.6,
       bty = "n")