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