setwd("~/UCE/III/estadistica")
datos <- read.csv("Conjunto_Datos_Minerales.csv", header = TRUE, sep = ";", 
                  dec = ".")
Latitud <- datos$latitude

# Limpieza
Latitud <- gsub("\\.", "", Latitud)   # quita puntos (separador de miles)
Latitud <- gsub(",", ".", Latitud)    # cambia coma decimal a punto (opcional, si aplica)

# Conversión
Latitud <- as.numeric(Latitud)

# Eliminar NA
Latitud <- na.omit(Latitud)

# Calcular número de clases usando Sturges
n <- length(Latitud)
k <- ceiling(1 + log2(n))

# Construir intervalos
limites <- seq(from = min(Latitud),
               to = max(Latitud),
               length.out = k + 1)

# Calcular histograma con límites fijos
Histograma_Longitud <- hist(Latitud, breaks = limites,
                            main = "Gráfica no. 1: Distribución de cantidad de longitud",
                            xlab = "Longitud",
                            ylab = "Cantidad",
                            col = "pink")

# Extraer info
liminf <- limites[-length(limites)]
limsup <- limites[-1]
Mc <- Histograma_Longitud$mids
ni <- Histograma_Longitud$counts
hi_s <- (ni / sum(ni)) * 100
Ni_asc <- cumsum(ni)
Hi_asc <- cumsum(hi_s)
Ni_dsc <- rev(cumsum(rev(ni)))
Hi_dsc <- rev(cumsum(rev(hi_s)))

# Verificar longitudes
sapply(list(liminf, limsup, Mc, ni, hi_s, Ni_asc, Hi_asc, Ni_dsc, Hi_dsc), length)
## [1] 20 20 20 20 20 20 20 20 20
# Crear tabla
TDF <- data.frame(liminf, limsup, Mc, ni, hi_s, Ni_asc, Hi_asc, Ni_dsc, Hi_dsc)
print(TDF)
##        liminf     limsup         Mc     ni         hi_s Ni_asc       Hi_asc
## 1  -7299718.0 -4567629.2 -5933673.6     72 2.363655e-02     72   0.02363655
## 2  -4567629.2 -1835540.5 -3201584.9   9473 3.109848e+00   9545   3.13348413
## 3  -1835540.5   896548.2  -469496.1  48796 1.601901e+01  58341  19.15249842
## 4    896548.2  3628637.0  2262592.6  65848 2.161694e+01 124189  40.76943532
## 5   3628637.0  6360725.8  4994681.4 175126 5.749131e+01 299315  98.26074396
## 6   6360725.8  9092814.5  7726770.1   5297 1.738928e+00 304612  99.99967171
## 7   9092814.5 11824903.2 10458858.9      0 0.000000e+00 304612  99.99967171
## 8  11824903.2 14556992.0 13190947.6      0 0.000000e+00 304612  99.99967171
## 9  14556992.0 17289080.8 15923036.4      0 0.000000e+00 304612  99.99967171
## 10 17289080.8 20021169.5 18655125.1      0 0.000000e+00 304612  99.99967171
## 11 20021169.5 22753258.2 21387213.9      0 0.000000e+00 304612  99.99967171
## 12 22753258.2 25485347.0 24119302.6      0 0.000000e+00 304612  99.99967171
## 13 25485347.0 28217435.8 26851391.4      0 0.000000e+00 304612  99.99967171
## 14 28217435.8 30949524.5 29583480.1      0 0.000000e+00 304612  99.99967171
## 15 30949524.5 33681613.2 32315568.9      0 0.000000e+00 304612  99.99967171
## 16 33681613.2 36413702.0 35047657.6      0 0.000000e+00 304612  99.99967171
## 17 36413702.0 39145790.8 37779746.4      0 0.000000e+00 304612  99.99967171
## 18 39145790.8 41877879.5 40511835.1      0 0.000000e+00 304612  99.99967171
## 19 41877879.5 44609968.2 43243923.9      0 0.000000e+00 304612  99.99967171
## 20 44609968.2 47342057.0 45976012.6      1 3.282854e-04 304613 100.00000000
##    Ni_dsc       Hi_dsc
## 1  304613 1.000000e+02
## 2  304541 9.997636e+01
## 3  295068 9.686652e+01
## 4  246272 8.084750e+01
## 5  180424 5.923056e+01
## 6    5298 1.739256e+00
## 7       1 3.282854e-04
## 8       1 3.282854e-04
## 9       1 3.282854e-04
## 10      1 3.282854e-04
## 11      1 3.282854e-04
## 12      1 3.282854e-04
## 13      1 3.282854e-04
## 14      1 3.282854e-04
## 15      1 3.282854e-04
## 16      1 3.282854e-04
## 17      1 3.282854e-04
## 18      1 3.282854e-04
## 19      1 3.282854e-04
## 20      1 3.282854e-04
#Ojivas absolutas (ascendente y descendente) intersecadas
plot(limsup, Ni_asc, type = "o", col = "blue",
     xlab = "Latitud",
     ylab = "Frecuencia acumulada",
     main = "Ojivas absolutas (ascendente y descendente)")
lines(liminf, Ni_dsc, type = "o", col = "red")

# Ojivas relativas (ascendente y descendente) intersecadas
plot(limsup, Hi_asc, type = "o", col = "blue",
     xlab = "Latitud",
     ylab = "Frecuencia acumulada (%)",
     main = "Ojivas relativas (ascendente y descendente)")
lines(liminf, Hi_dsc, type = "o", col = "red")

# Boxplot
boxplot(Latitud,
        horizontal = TRUE,
        col = "lightgreen",
        main = "Boxplot de la variable Latitud",
        xlab = "Latitud")