library(dplyr)
library(ggplot2)
library(knitr)
library(kableExtra)
list.files()
## [1] "datos_vale.csv"                       
## [2] "SECTION.Rmd"                          
## [3] "variables_cualitativas_grupo6 (1).zip"
datos <- read.csv("datos_vale.csv", sep = ";", stringsAsFactors = FALSE,
                  fileEncoding = "UTF-8")

# Limpieza: conservar solo valores numéricos válidos entre 1 y 36
datos$SECTION_num <- suppressWarnings(as.numeric(datos$SECTION))
seccion <- datos$SECTION_num[!is.na(datos$SECTION_num) & datos$SECTION_num >= 1 & datos$SECTION_num <= 36]
seccion <- as.integer(seccion)
n_total <- length(seccion)

1. Identificación de la Variable

Campo Descripción
Nombre original SECTION
Nombre asignado Sección
Tipo Cualitativa
Subtipo Nominal
Dominio Números enteros del 1 al 36 (subdivisiones de un Township en el sistema PLSS)
Rango {1, 2, 3, …, 36}
Unidad de medida Sin unidad (identificador catastral)
Escala de medida Nominal

2. Descripción del Análisis

Se identificaron 96361 registros válidos con valores de sección entre 1 y 36. Dado que la variable presenta exactamente 36 categorías, lo cual excede el límite de 10 valores, se procedió a agrupar en 6 intervalos de 6 secciones cada uno, siguiendo un criterio uniforme acorde al sistema PLSS de Kansas.

Los grupos conformados son:

  • Grupo 1: Secciones 1–6
  • Grupo 2: Secciones 7–12
  • Grupo 3: Secciones 13–18
  • Grupo 4: Secciones 19–24
  • Grupo 5: Secciones 25–30
  • Grupo 6: Secciones 31–36

3. Tabla de Distribución de Frecuencias

Cuadro No. 1
Distribución de frecuencias de la variable Sección
(Arrendamientos de Petróleo y Gas en Kansas — BLM MLRS)

# Agrupar en 6 grupos de 6 secciones
breaks_sec <- c(0.5, 6.5, 12.5, 18.5, 24.5, 30.5, 36.5)
labels_sec <- c("1 – 6", "7 – 12", "13 – 18", "19 – 24", "25 – 30", "31 – 36")

grupos <- cut(seccion, breaks = breaks_sec, labels = labels_sec, right = TRUE)

# Frecuencias
ni <- table(grupos)
fi <- ni / n_total
hi_pct <- fi * 100

tdf <- data.frame(
  Categoria   = names(ni),
  `ni (FA)`   = as.integer(ni),
  `hi (FR)`   = round(as.numeric(fi), 4),
  `hi% (%)`   = round(as.numeric(hi_pct), 2),
  check.names = FALSE
)

# Totales
tdf_total <- rbind(tdf,
  data.frame(
    Categoria = "**Total**",
    `ni (FA)` = n_total,
    `hi (FR)` = 1.0000,
    `hi% (%)` = 100.00,
    check.names = FALSE
  )
)

kable(tdf_total,
      caption = "Tabla 1: Distribución de frecuencias de la variable Sección.",
      align   = c("l", "r", "r", "r"),
      col.names = c("Grupos de Sección", "Frecuencia (ni)", "Fracción (hi)", "Porcentaje (hi%)")) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "bordered"),
                full_width = FALSE, position = "center") %>%
  row_spec(nrow(tdf_total), bold = TRUE, background = "#D3D3D3") %>%
  column_spec(1, bold = TRUE)
Tabla 1: Distribución de frecuencias de la variable Sección.
Grupos de Sección Frecuencia (ni) Fracción (hi) Porcentaje (hi%)
1 – 6 16365 0.1698 16.98
7 – 12 15972 0.1658 16.58
13 – 18 16669 0.1730 17.30
19 – 24 16044 0.1665 16.65
25 – 30 15577 0.1617 16.17
31 – 36 15734 0.1633 16.33
Total 96361 1.0000 100.00

4. Gráficos

4.1 Diagrama de Barras

df_plot <- data.frame(
  Grupo = names(ni),
  Frecuencia = as.integer(ni)
)

ggplot(df_plot, aes(x = Grupo, y = Frecuencia)) +
  geom_bar(stat = "identity", fill = "gray50", color = "black", width = 0.65) +
  geom_text(aes(label = Frecuencia), vjust = -0.4, size = 3.5) +
  labs(
    title = "Figura 1: Diagrama de barras — Variable Sección",
    subtitle = "Grupos de secciones (sistema PLSS, Kansas)",
    x = "Grupo de Sección",
    y = "Frecuencia absoluta (ni)"
  ) +
  theme_classic(base_size = 12) +
  theme(
    plot.title    = element_text(face = "bold", hjust = 0.5),
    plot.subtitle = element_text(hjust = 0.5),
    axis.text.x   = element_text(angle = 0, vjust = 0.5)
  )

4.2 Diagrama Circular

df_pie <- data.frame(
  Grupo     = names(ni),
  Frecuencia = as.integer(ni)
)
df_pie$Porcentaje <- round(df_pie$Frecuencia / n_total * 100, 1)
df_pie$Etiqueta   <- paste0(df_pie$Grupo, "\n", df_pie$Porcentaje, "%")

grises <- gray.colors(nrow(df_pie), start = 0.3, end = 0.9)

ggplot(df_pie, aes(x = "", y = Frecuencia, fill = Grupo)) +
  geom_col(width = 1, color = "black") +
  coord_polar(theta = "y") +
  scale_fill_manual(values = grises) +
  geom_text(aes(label = Etiqueta),
            position = position_stack(vjust = 0.5), size = 3.2) +
  labs(
    title = "Figura 2: Diagrama circular — Variable Sección",
    fill  = "Grupo de Sección"
  ) +
  theme_void() +
  theme(
    plot.title = element_text(face = "bold", hjust = 0.5),
    legend.position = "right"
  )


5. Interpretación

Los 96361 pozos registrados se distribuyen de manera muy uniforme entre los 36 grupos de sección del sistema PLSS. Agrupados en bloques de seis, cada grupo representa alrededor del 16.7 % del total. Esto indica que la actividad de arrendamiento petrolero en Kansas cubre homogéneamente todas las subdivisiones territoriales sin concentración marcada en alguna sección particular.