setwd("~/UCE/III/estadistica")
#Carga de Datos
datos <- read.csv("Conjunto_Datos_Minerales.csv", header = TRUE, sep = ";",
dec = ".")
# 1. Normalizar y extraer variable 'ore'
Ore <- tolower(trimws(as.character(datos$ore)))
# 2. Tabla de frecuencia
TablaOre <- as.data.frame(table(Ore))
names(TablaOre) <- c("Mineral", "ni") # ni = frecuencia
# 3. Calcular porcentaje
TablaOre$hi <- (TablaOre$ni / sum(TablaOre$ni)) * 100 # hi = porcentaje
#GDF
# 4. LOCAL
barplot(TablaOre$ni,
names.arg = TablaOre$Mineral,
main = "Gráfico No.1: distribucion de cantidad de minerales extraídos",
xlab = "Mineral",
ylab = "Cantidad",
col = "skyblue",
las = 2,
cex.names = 0.5,
cex.axis = 0.5)

# 5. Gráfico de barras - Frecuencia GLOBAL
barplot(TablaOre$ni,
names.arg = TablaOre$Mineral,
main = "Gráfico No.2: distribucion de cantidad de minerales extraídos",
xlab = "Mineral",
ylab = "Cantidad",
col = "skyblue",
las = 2,
ylim = c(0, max(TablaOre$ni) * 1.1),
cex.names = 0.5,
cex.axis = 0.5)

# 6. Gráfico de barras - Porcentaje LOCAL
barplot(TablaOre$hi,
names.arg = TablaOre$Mineral,
main = "Gráfico No.3: distribucion de porcentaje de minerales extraídos",
xlab = "Mineral",
ylab = "Porcentaje",
col = "lightgreen",
las = 2,
cex.names = 0.5,
cex.axis = 0.5)

# 7. Gráfico de barras - Porcentaje GLOBAL
barplot(TablaOre$hi,
names.arg = TablaOre$Mineral,
main = "Gráfico No.4: distribucion de porcentaje de minerales extraídos",
xlab = "Mineral",
ylab = "Porcentaje",
col = "lightgreen",
las = 2,
ylim = c(0, 100),
cex.names = 0.5,
cex.axis = 0.5)

#AGRUPACION
# 8. Tabla ordenada por frecuencia
TablaOreOrd <- TablaOre[order(-TablaOre$ni), ]
top_n <- 7
minerales_top <- TablaOreOrd$Mineral[1:top_n]
# 9. Agrupación
OreAgrupado <- ifelse(Ore %in% minerales_top, Ore, "Otros minerales explotables")
TablaOreAgrupada <- as.data.frame(table(OreAgrupado))
names(TablaOreAgrupada) <- c("Mineral", "Frecuencia")
# 10. Porcentaje
TablaOreAgrupada$Porcentaje <- round((TablaOreAgrupada$Frecuencia / sum(TablaOreAgrupada$Frecuencia)) * 100,)
print(TablaOreAgrupada)
## Mineral Frecuencia Porcentaje
## 1 234074 77
## 2 chromite 1792 1
## 3 galena 1445 0
## 4 gold 10427 3
## 5 limestone 1585 1
## 6 Otros minerales explotables 51913 17
## 7 sand and gravel 2305 1
## 8 scheelite 1091 0
# 11. Paleta de grises para pastel
colores_grises <- gray.colors(nrow(TablaOreAgrupada), start = 0.9, end = 0.3)
# 12.GDF
#local
barplot(TablaOreAgrupada$Frecuencia,
names.arg = TablaOreAgrupada$Mineral,
col = colores_grises,
main = "Gráfico No.5: distribucion de cantidad del top 7 minerales extraídos",
cex.main = 1,
xlab = "Mineral",
ylab = "Frecuencia",
las = 2,
cex.names = 0.5,
cex.axis = 0.5)

#Global
barplot(TablaOreAgrupada$Frecuencia,
names.arg = TablaOreAgrupada$Mineral,
col = colores_grises,
main = "Gráfico No.6: distribucion de cantidad del top 7 minerales extraídos",
cex.main = 1,
xlab = "Mineral",
ylab = "Frecuencia",
ylim = c(0,length(Ore)),
las = 2,
cex.names = 0.5,
cex.axis = 0.5)

# Global porcentaje
barplot(TablaOreAgrupada$Porcentaje,
names.arg = TablaOreAgrupada$Mineral,
col = colores_grises,
main = "Gráfico No.7: distribucion de porcentaje del top 7 minerales extraídos",
cex.main = 1,
xlab = "Mineral",
ylab = "Porcentaje",
ylim = c(0, 100),
las = 2,
cex.names = 0.5,
cex.axis = 0.5)

#local porcentaje
barplot(TablaOreAgrupada$Porcentaje,
names.arg = TablaOreAgrupada$Mineral,
col = colores_grises,
main = "Gráfico No.8: distribucion de porcentaje del top 7 minerales extraídos",
cex.main = 1,
xlab = "Mineral",
ylab = "Porcentaje",
las = 2,
cex.names = 0.5,
cex.axis = 0.5)

# Diagrama circular
par(mar = c(5, 4, 4, 12)) # espacio a la derecha
par(xpd = TRUE) # permitir dibujar fuera
pie(TablaOreAgrupada$Frecuencia,
labels = NA,
col = colores_grises,
main = "Gráfico No.9:Distribución de minerales económicamente explotables")
legend(x = 1.2, y = 1,
legend = paste(TablaOreAgrupada$Mineral, ": ", round(TablaOreAgrupada$Porcentaje, 1), "%"),
fill = colores_grises,
cex = 0.6,
bty = "n")
