setwd("/cloud/project/datos")
datos <- read.csv("Petroleo_Ontaro.csv", header=T, dec=".", sep=";")
c_elevacion <- datos$GROUND_ELEVATION
c_elevacion_sin_na <- na.omit(c_elevacion)
if(length(c_elevacion_sin_na) == 0) {
stop("La columna 'GROUND_ELEVATION' no tiene datos válidos.")
}
n <- length(c_elevacion_sin_na)
print(n)
## [1] 24601
k <- 1 + (3.3 * log10(n))
k <- floor(k)
print(k)
## [1] 15
min_valor <- min(c_elevacion_sin_na)
max_valor <- max(c_elevacion_sin_na)
if (!is.finite(min_valor) | !is.finite(max_valor)) {
stop("Los valores de min o max no son finitos.")
}
R <- max_valor - min_valor
A <- R / k
if (A <= 0) {
stop("El valor de A es menor o igual a cero, lo cual no es válido.")
}
Li <- round(seq(from = min_valor, to = max_valor - A, by = A), 4)
Li
## [1] 0.3000 46.5467 92.7933 139.0400 185.2867 231.5333 277.7800 324.0267
## [9] 370.2733 416.5200 462.7667 509.0133 555.2600 601.5067 647.7533
Ls <- round(seq(from = min_valor + A, to = max_valor, by = A), 4)
Ls
## [1] 46.5467 92.7933 139.0400 185.2867 231.5333 277.7800 324.0267 370.2733
## [9] 416.5200 462.7667 509.0133 555.2600 601.5067 647.7533 694.0000
Mc <- round((Li+Ls)/2,2)
Mc
## [1] 23.42 69.67 115.92 162.16 208.41 254.66 300.90 347.15 393.40 439.64
## [11] 485.89 532.14 578.38 624.63 670.88
ni <- numeric(length(Li))
for(i in 1:length(Li)){
ni[i] <- sum(c_elevacion_sin_na >= Li[i] & c_elevacion_sin_na < Ls[i])
}
ni[length(Li)] <- sum(c_elevacion_sin_na >= Li[length(Li)] & c_elevacion_sin_na <= max_valor)
ni
## [1] 37 222 88 7695 14491 1481 420 104 16 27 14 4
## [13] 0 1 1
hi <- ni/sum(ni)
sum(hi)
## [1] 1
hi_porc <- hi*100
sum(hi_porc)
## [1] 100
Ni_asc <- cumsum(ni)
Ni_dsc <- rev(cumsum(ni))
Hi_asc <- round(cumsum(hi_porc),2)
Hi_dsc <- round(rev(cumsum(hi_porc)),2)
TDFc_elevacion <- data.frame(Li,Ls, Mc, ni, hi_porc, Ni_asc, Ni_dsc, Hi_asc, Hi_dsc)
TDFc_elevacion
## Li Ls Mc ni hi_porc Ni_asc Ni_dsc Hi_asc Hi_dsc
## 1 0.3000 46.5467 23.42 37 0.150400390 37 24601 0.15 100.00
## 2 46.5467 92.7933 69.67 222 0.902402341 259 24600 1.05 100.00
## 3 92.7933 139.0400 115.92 88 0.357709036 347 24599 1.41 99.99
## 4 139.0400 185.2867 162.16 7695 31.279216292 8042 24599 32.69 99.99
## 5 185.2867 231.5333 208.41 14491 58.904109589 22533 24595 91.59 99.98
## 6 231.5333 277.7800 254.66 1481 6.020080485 24014 24581 97.61 99.92
## 7 277.7800 324.0267 300.90 420 1.707247673 24434 24554 99.32 99.81
## 8 324.0267 370.2733 347.15 104 0.422747043 24538 24538 99.74 99.74
## 9 370.2733 416.5200 393.40 16 0.065038007 24554 24434 99.81 99.32
## 10 416.5200 462.7667 439.64 27 0.109751636 24581 24014 99.92 97.61
## 11 462.7667 509.0133 485.89 14 0.056908256 24595 22533 99.98 91.59
## 12 509.0133 555.2600 532.14 4 0.016259502 24599 8042 99.99 32.69
## 13 555.2600 601.5067 578.38 0 0.000000000 24599 347 99.99 1.41
## 14 601.5067 647.7533 624.63 1 0.004064875 24600 259 100.00 1.05
## 15 647.7533 694.0000 670.88 1 0.004064875 24601 37 100.00 0.15
colnames(TDFc_elevacion)[colnames(TDFc_elevacion)=="hi_porc"] <- "hi"
names(TDFc_elevacion)
## [1] "Li" "Ls" "Mc" "ni" "hi" "Ni_asc" "Ni_dsc" "Hi_asc"
## [9] "Hi_dsc"
hist(c_elevacion_sin_na,
breaks = seq(min(c_elevacion_sin_na), max(c_elevacion_sin_na), by = A),
col = "#4EEE94",
main = "Gráfica No4.01: Distribucion de Elevación de Terreno",
xlab = "Elevacion de Terreno",
ylab = "Cantidad"
)

x_asc <- c(min(Li),Ls)
y_asc <- c(0, Ni_asc)
x_dsc <- c(Li,c(Ls))
y_dsc <- c(Ni_dsc, 0)
plot(x_asc, y_asc, type = "b", col="#836FFF", pch=19,
main = "Gráfica No4.02: Distribucion de Elevación de Terreno",
xlab = "Elevacion de Terreno",
ylab = "Cantidad",
xlim = range(c(x_asc,x_dsc)),
ylim = c(0, max(c(y_asc, y_dsc))))
if (length(x_dsc) > length(y_dsc)) {
y_dsc <- c(y_dsc, rep(NA, length(x_dsc) - length(y_dsc))) # Añadir NAs
}
lines(x_dsc, y_dsc, type = "b", col = "#EE7942", pch = 19)

boxplot(c_elevacion_sin_na, horizontal = T, col = "#FFDAB9",
main = "Gráfica No4.03: Distribucion de Elevación de Terreno",
xlab = "Elevación de Terreno")
