1. Carga de Librerías

# Cargamos las librerías
library(dplyr)
library(gt)

2. Carga de Datos

#### DATASET ####
# NOTA: no se usa setwd(). Al hacer Knit, RStudio ya usa como carpeta
# de trabajo la misma carpeta donde está guardado este archivo .Rmd.
# Simplemente coloca el CSV original (sin renombrar) en esa misma carpeta.

archivo_csv <- "produccin-de-pozos-de-gas-y-petrleo-no-convencional.csv"

# Diagnóstico: si el archivo no está en la carpeta, avisa claramente
# en vez de dar un error críptico de conexión.
if (!file.exists(archivo_csv)) {
  stop("No se encontró '", archivo_csv, "' en esta carpeta.\n",
       "Archivos que SÍ están en esta carpeta: ",
       paste(list.files(), collapse = ", "))
}

Datos <- read.csv(archivo_csv, sep = ";", fileEncoding = "UTF-8-BOM")

# Estructura de los datos
str(Datos)
## 'data.frame':    400759 obs. of  40 variables:
##  $ idempresa             : chr  "YSUR" "YSUR" "YSUR" "YSUR" ...
##  $ anio                  : int  2018 2015 2017 2018 2015 2017 2018 2016 2017 2018 ...
##  $ mes                   : int  1 1 1 1 1 1 1 1 1 1 ...
##  $ idpozo                : int  132771 131719 145330 132770 136137 131430 132769 135206 131429 132738 ...
##  $ prod_pet              : chr  "7.212" "5.240" "0.00" "3.322" ...
##  $ prod_gas              : chr  "510.173" "1.879.820" "0.00" "101.733" ...
##  $ prod_agua             : chr  "0.34" "1.590" "0.00" "14.2" ...
##  $ iny_agua              : chr  "0" "0.000" "0.00" "0" ...
##  $ iny_gas               : chr  "0" "0.000" "0.00" "0" ...
##  $ iny_co2               : num  0 0 0 0 0 0 0 0 0 0 ...
##  $ iny_otro              : num  0 0 0 0 0 0 0 0 0 0 ...
##  $ tef                   : chr  "30.15" "31.000" "0.00" "31" ...
##  $ vida_util             : chr  "" "" "" "" ...
##  $ tipoextraccion        : chr  "Surgencia Natural" "Surgencia Natural" "Sin Sistema de Extracción" "Surgencia Natural" ...
##  $ tipoestado            : chr  "Extracción Efectiva" "Extracción Efectiva" "En Estudio" "Extracción Efectiva" ...
##  $ tipopozo              : chr  "Gasífero" "Gasífero" "Otro tipo" "Gasífero" ...
##  $ observaciones         : chr  "" "" "" "" ...
##  $ fechaingreso          : chr  "2018-02-10 08:37:14.717426" "2015-02-26 13:35:35.533458" "2017-02-16 13:45:37.233373" "2018-02-10 08:37:14.717426" ...
##  $ rectificado           : chr  "f" "f" "f" "f" ...
##  $ habilitado            : chr  "t" "t" "t" "t" ...
##  $ idusuario             : int  444 5 444 444 5 444 444 5 444 444 ...
##  $ empresa               : chr  "YSUR ENERGÍA ARGENTINA S.R.L." "YSUR ENERGÍA ARGENTINA S.R.L." "YSUR ENERGÍA ARGENTINA S.R.L." "YSUR ENERGÍA ARGENTINA S.R.L." ...
##  $ sigla                 : chr  "APA.RN.EFO-126(d)" "AEA.NQ.Gu-1176d" "APA.Nq.Hua.x-1" "APA.RN.EFO-122(d)" ...
##  $ formprod              : chr  "LAJA" "PREC" "VMUT" "LAJA" ...
##  $ profundidad           : chr  "3820" "2592" "4100" "3814" ...
##  $ formacion             : chr  "lajas" "precuyo" "vaca muerta" "lajas" ...
##  $ idareapermisoconcesion: chr  "FEO" "NDD" "X009" "FEO" ...
##  $ areapermisoconcesion  : chr  "ESTACION FERNANDEZ ORO" "AL NORTE DE LA DORSAL" "HUACALERA" "ESTACION FERNANDEZ ORO" ...
##  $ idareayacimiento      : chr  "Z155" "GUA" "Y325" "Z155" ...
##  $ areayacimiento        : chr  "ESTACION FERNANDEZ ORO" "GUANACO" "HUACALERA" "ESTACION FERNANDEZ ORO" ...
##  $ cuenca                : chr  "NEUQUINA" "NEUQUINA" "NEUQUINA" "NEUQUINA" ...
##  $ provincia             : chr  "Rio Negro" "Neuquén" "Neuquén" "Rio Negro" ...
##  $ coordenadax           : chr  "-6.783.808.193" "-6.924.999.839" "-6.979.045.203" "-6.786.739.055" ...
##  $ coordenaday           : chr  "-3.901.910.996" "-3.886.503.323" "-3.820.704.866" "-3.900.716.726" ...
##  $ tipo_de_recurso       : chr  "NO CONVENCIONAL" "NO CONVENCIONAL" "NO CONVENCIONAL" "NO CONVENCIONAL" ...
##  $ proyecto              : chr  "GAS PLUS" "GAS PLUS" "Sin Proyecto" "GAS PLUS" ...
##  $ clasificacion         : chr  "EXPLOTACION" "EXPLOTACION" "EXPLORACION" "EXPLOTACION" ...
##  $ subclasificacion      : chr  "DESARROLLO" "DESARROLLO" "EXPLORACION" "DESARROLLO" ...
##  $ sub_tipo_recurso      : chr  "TIGHT" "TIGHT" "SHALE" "TIGHT" ...
##  $ fecha_data            : chr  "31/1/2018" "31/1/2015" "31/1/2017" "31/1/2018" ...

3. Extracción de la Variable

# Variable NOMINAL: tipo de pozo
variable <- Datos$tipopozo

4. Conteo

n_total <- length(variable)
n_na <- sum(is.na(variable) | variable == "")
n_validos <- n_total - n_na

cat("Total de registros:", n_total, "\n")
## Total de registros: 400759
cat("Valores faltantes:", n_na, "\n")
## Valores faltantes: 601
cat("Valores válidos:", n_validos, "\n")
## Valores válidos: 400158

5. Tabla de Frecuencia

tabla_frec <- table(variable)

tabla_df <- as.data.frame(tabla_frec)
colnames(tabla_df) <- c("Categoria", "ni")
tabla_df$hi <- tabla_df$ni / sum(tabla_df$ni)
tabla_df$hi_porc <- round(tabla_df$hi * 100, 2)
tabla_df <- tabla_df %>% arrange(desc(ni))

# Fila de totales
totales <- data.frame(Categoria = "TOTAL",
                       ni = sum(tabla_df$ni),
                       hi = sum(tabla_df$hi),
                       hi_porc = sum(tabla_df$hi_porc))
tabla_final <- rbind(tabla_df, totales)

# Tabla con gt
tabla_final_gt <- tabla_final %>%
  gt() %>%
  tab_header(title = md("**Tabla N°1 de Distribución de Frecuencias de Tipo de Pozo**")) %>%
  tab_source_note(source_note = "Autor: Mayerli Nazareno") %>%
  cols_label(
    Categoria = "Tipo de Pozo",
    ni = "Frecuencia (ni)",
    hi_porc = "Porcentaje (hi%)"
  ) %>%
  cols_hide(columns = hi) %>%
  fmt_number(columns = c(hi_porc), decimals = 2) %>%
  tab_options(heading.title.font.size = px(16))

tabla_final_gt
Tabla N°1 de Distribución de Frecuencias de Tipo de Pozo
Tipo de Pozo Frecuencia (ni) Porcentaje (hi%)
Gasífero 218738 54.58
Petrolífero 153729 38.36
Otro tipo 26977 6.73
Sumidero 624 0.16
601 0.15
Inyección de Agua 56 0.01
Inyección de Gas 34 0.01
TOTAL 400759 100.00
Autor: Mayerli Nazareno

6. Gráficas

6.1 Diagrama de Barras de Cantidad

par(mar = c(13, 6, 4, 2))
barplot(tabla_df$ni,
        main = "", xlab = "", ylab = "",
        col = "skyblue",
        ylim = c(0, max(tabla_df$ni) * 1.15),
        names.arg = tabla_df$Categoria,
        cex.names = 0.8, las = 2)
mtext("Cantidad", side = 2, line = 4.5, cex = 1, font = 1)
mtext("Tipo de Pozo", side = 1, line = 11)
mtext("Gráfica N°1: Distribución de Cantidad de Pozos por Tipo",
      side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)

# Misma información, agregando el valor exacto sobre cada barra
par(mar = c(13, 6, 4, 2))
bp1 <- barplot(tabla_df$ni,
        main = "", xlab = "", ylab = "",
        col = "skyblue",
        ylim = c(0, max(tabla_df$ni) * 1.25),
        names.arg = tabla_df$Categoria,
        cex.names = 0.8, las = 2)
mtext("Cantidad", side = 2, line = 4.5, cex = 1, font = 1)
mtext("Tipo de Pozo", side = 1, line = 11)
mtext("Gráfica N°2: Distribución de Cantidad de Pozos por Tipo (con etiquetas)",
      side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)
text(x = bp1, y = tabla_df$ni, labels = tabla_df$ni, pos = 3, cex = 0.75, col = "black")

6.2 Diagrama de Barras Porcentual

par(mar = c(13, 4, 4, 2))
barplot(tabla_df$hi_porc,
        main = "", xlab = "", ylab = "Porcentaje %",
        col = "skyblue",
        ylim = c(0, max(tabla_df$hi_porc) * 1.15),
        names.arg = tabla_df$Categoria,
        cex.names = 0.8, las = 2)
mtext("Tipo de Pozo", side = 1, line = 11)
mtext("Gráfica N°3: Distribución Porcentual de Pozos por Tipo",
      side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)

par(mar = c(13, 4, 4, 2))
bp2 <- barplot(tabla_df$hi_porc,
              main = "", xlab = "", ylab = "Porcentaje %",
              col = "skyblue",
              ylim = c(0, max(tabla_df$hi_porc) * 1.3),
              names.arg = tabla_df$Categoria,
              cex.names = 0.8, las = 2)
mtext("Tipo de Pozo", side = 1, line = 11)
mtext("Gráfica N°4: Distribución Porcentual de Pozos por Tipo (con etiquetas)",
      side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)
text(x = bp2, y = tabla_df$hi_porc,
     labels = paste0(round(tabla_df$hi_porc, 2), "%"),
     pos = 3, cex = 0.8, col = "black")

6.3 Diagrama Circular

par(mar = c(5, 4, 4, 10), xpd = TRUE)
mis_colores <- c("#1F5FFE", "#83E5FC", "#81D4EA", "#4EC3F7", "#29D8F5", "#0277BD")
colores_finales <- rep(mis_colores, length.out = nrow(tabla_df))

# Para evitar que las etiquetas de categorías muy pequeñas (< 2%) se
# encimen y queden ilegibles, solo se rotulan dentro del gráfico las
# categorías con participación >= 2%; el resto igual se identifica por
# color y porcentaje en la leyenda.
etiquetas_pie <- ifelse(tabla_df$hi_porc < 2, "",
                        paste0(round(tabla_df$hi_porc, 1), "%"))

pie(tabla_df$ni,
    main = "", radius = 0.9,
    labels = etiquetas_pie,
    col = colores_finales, cex = 0.7)
mtext("Gráfica N°5: Distribución Porcentual de Pozos por Tipo",
      side = 3, line = 2, adj = 0.5, cex = 0.9, font = 2)
legend(x = 1.3, y = 1.1,
       legend = paste0(tabla_df$Categoria, " (", round(tabla_df$hi_porc, 1), "%)"),
       fill = colores_finales, cex = 0.6,
       title = "Tipo de Pozo", bty = "n")

7. Indicadores Estadísticos

# Para una variable NOMINAL el único indicador válido es la MODA
moda <- as.character(tabla_df$Categoria[which.max(tabla_df$ni)])
moda_pct <- tabla_df$hi_porc[which.max(tabla_df$ni)]

tabla_indicadores <- data.frame(
  Variable = "Tipo de Pozo",
  Rango = "-",
  "Media (Me)" = "-",
  "Mediana (Md)" = "-",
  "Moda (Mo)" = moda,
  "Varianza (V)" = "-",
  "Desv. Est. (Sd)" = "-",
  "C.V. (%)" = "-",
  "Asimetria (As)" = "-",
  "Curtosis (K)" = "-",
  check.names = FALSE
)

tabla_indicadores_gt <- tabla_indicadores %>%
  gt() %>%
  tab_header(title = md("**Tabla N°2 de Indicadores de Tipo de Pozo**")) %>%
  tab_source_note(source_note = "Autor: Mayerli Nazareno")

tabla_indicadores_gt
Tabla N°2 de Indicadores de Tipo de Pozo
Variable Rango Media (Me) Mediana (Md) Moda (Mo) Varianza (V) Desv. Est. (Sd) C.V. (%) Asimetria (As) Curtosis (K)
Tipo de Pozo - - - Gasífero - - - - -
Autor: Mayerli Nazareno

8. Conclusiones

# Plantilla: "El valor más frecuente de (variable) es (moda)."
conclusion <- sprintf(
  "La variable **\"Tipo de Pozo\"** presenta como valor más frecuente **%s**, con una participación de **%s%%** en la muestra.",
  moda, moda_pct
)
cat(conclusion)

La variable “Tipo de Pozo” presenta como valor más frecuente Gasífero, con una participación de 54.58% en la muestra.