# 1. Configurar directorio y cargar datos
setwd("/cloud/project/proyecto")

datos <- read.csv("archivo depurado nuevo 12.csv",
                  header = TRUE, sep = ";", dec = ".")

# Pronfundidad vertical 


# Extraer y limpiar datos
prof_vertical <- na.omit(as.numeric(datos$PROFUNDIDADE_VERTICAL_M))
## Warning in na.omit(as.numeric(datos$PROFUNDIDADE_VERTICAL_M)): NAs introduced
## by coercion
prof_vertical <- prof_vertical[prof_vertical > 0] 

# Parámetros para agrupamiento: rango, número de clases (Sturges), amplitud
rango <- diff(range(prof_vertical))
num_clases <- floor(1 + 3.3 * log10(length(prof_vertical)))
amplitud <- rango / num_clases

# Crear límites de clases
limites_inferiores <- seq(min(prof_vertical), max(prof_vertical) - amplitud, by = amplitud)
limites_superiores <- c(limites_inferiores[-1], max(prof_vertical))
marcas_clase <- (limites_inferiores + limites_superiores) / 2

# Función para calcular frecuencias absolutas
calc_frecuencias <- function(datos, lim_inf, lim_sup) {
  sapply(seq_along(lim_inf), function(i) {
    if(i == length(lim_inf)) {
      sum(datos >= lim_inf[i] & datos <= lim_sup[i])
    } else {
      sum(datos >= lim_inf[i] & datos < lim_sup[i])
    }
  })
}

frecuencias <- calc_frecuencias(prof_vertical, limites_inferiores, limites_superiores)
frecuencias_relativas <- frecuencias / length(prof_vertical) * 100

# Frecuencias acumuladas
freq_acum_asc <- cumsum(frecuencias)
freq_acum_desc <- rev(cumsum(rev(frecuencias)))
freq_rel_acum_asc <- cumsum(frecuencias_relativas)
freq_rel_acum_desc <- rev(cumsum(rev(frecuencias_relativas)))

# Construcción del data.frame resumen
tabla_frecuencias <- data.frame(
  Limite_Inferior = round(limites_inferiores, 2),
  Limite_Superior = round(limites_superiores, 2),
  Marca_Clase = round(marcas_clase, 2),
  Frecuencia = frecuencias,
  Frec_Relativa_Percent = round(frecuencias_relativas, 2),
  Acum_Abs_Asc = freq_acum_asc,
  Acum_Abs_Desc = freq_acum_desc,
  Acum_Rel_Asc = round(freq_rel_acum_asc, 2),
  Acum_Rel_Desc = round(freq_rel_acum_desc, 2)
)

print("Tabla de distribución de frecuencias para Profundidad Vertical")
## [1] "Tabla de distribución de frecuencias para Profundidad Vertical"
print(tabla_frecuencias)
##    Limite_Inferior Limite_Superior Marca_Clase Frecuencia Frec_Relativa_Percent
## 1             4.00         2901.82     1452.91       1297                 81.32
## 2          2901.82         5799.64     4350.73        275                 17.24
## 3          5799.64         8697.45     7248.55         21                  1.32
## 4          8697.45        11595.27    10146.36          0                  0.00
## 5         11595.27        14493.09    13044.18          0                  0.00
## 6         14493.09        17390.91    15942.00          0                  0.00
## 7         17390.91        20288.73    18839.82          0                  0.00
## 8         20288.73        23186.55    21737.64          0                  0.00
## 9         23186.55        26084.36    24635.45          0                  0.00
## 10        26084.36        28982.18    27533.27          1                  0.06
## 11        28982.18        31880.00    30431.09          1                  0.06
##    Acum_Abs_Asc Acum_Abs_Desc Acum_Rel_Asc Acum_Rel_Desc
## 1          1297          1595        81.32        100.00
## 2          1572           298        98.56         18.68
## 3          1593            23        99.87          1.44
## 4          1593             2        99.87          0.13
## 5          1593             2        99.87          0.13
## 6          1593             2        99.87          0.13
## 7          1593             2        99.87          0.13
## 8          1593             2        99.87          0.13
## 9          1593             2        99.87          0.13
## 10         1594             2        99.94          0.13
## 11         1595             1       100.00          0.06
# Histograma
hist(prof_vertical,
     breaks = seq(min(prof_vertical), max(prof_vertical), by = amplitud),
     col = "steelblue",
     main = "Gráfica No 04: Distribución de Profundidad Vertical",
     xlab = "Profundidad Vertical (m)",
     ylab = "Cantidad")

# Ojivas ascendentes y descendentes
x_asc <- c(min(limites_inferiores), limites_superiores)
y_asc <- c(0, freq_acum_asc)

x_desc <- c(limites_inferiores, max(limites_superiores))
y_desc <- c(freq_acum_desc, 0)

plot(x_asc, y_asc, type = "b", col = "steelblue", pch = 19,
     main = "Gráfica No 04.2: Ojiva Ascendente y Descendente de Profundidad Vertical",
     xlab = "Profundidad Vertical (m)",
     ylab = "Cantidad",
     xlim = range(c(x_asc, x_desc)),
     ylim = c(0, max(c(y_asc, y_desc))))
lines(x_desc, y_desc, type = "b", col = "firebrick", pch = 19)

# Boxplot para detectar outliers
boxplot(prof_vertical, horizontal = TRUE, col = "violet",
        main = "Distribución No 04.3: Profundidad Vertical (m)",
        xlab = "Profundidad Vertical (m)")

# Conclusion

conclusion <- "Profundidad Vertical muestran una clara concentración de mediciones en las profundidades mayores, con más del 81% de las observaciones situadas entre los 4 m y 2901.82 m"