1. Librerías

# install.packages(c("readxl", "dplyr", "ggplot2", "DT"))  # solo la primera vez
library(readxl)
library(dplyr)
library(ggplot2)
library(DT)

2. Cargar el archivo

Al ejecutar este chunk (ver instrucciones abajo) se abrirá una ventana para que selecciones manualmente el archivo .xlsx.

ruta <- file.choose()
datos <- read_excel(ruta)
datos <- na.omit(datos)

cat("Total de registros originales:", nrow(datos), "\n")
## Total de registros originales: 47757

MUY IMPORTANTE — cómo correr este documento con file.choose():

El botón “Knit” NO sirve para este documento, porque Knit corre en una sesión de R separada que no puede abrir ventanas.

En vez de Knit, usa “Run All”:

  • Ve al menú Code → Run Region → Run All (o el atajo Ctrl+Alt+R en Windows/Linux, Cmd+Option+R en Mac).
  • Cuando llegue al chunk cargar_datos, se abrirá la ventana para que elijas tu archivo .xlsx.
  • Los resultados y gráficos van a aparecer debajo de cada chunk, dentro del mismo documento en RStudio.

3. Tabla condensada: cada valor de Años Activos en una sola fila

Cada valor de YEARS_ACTIVE aparece una sola vez (no se repite como 1, 1, 1…). Todos los valores de CUMULATIVE_PRODUCTION que le corresponden se juntan en la misma celda, separados por comas.

Ejemplo: si en CUMULATIVE_PRODUCTION hay 2,2,3,4,5,5 y esos valores corresponden a YEARS_ACTIVE = 3,3,4,5,6,6, la tabla queda así:

YEARS_ACTIVE CUMULATIVE_PRODUCTION
3 2, 2
4 3
5 4
6 5, 5
condensado <- datos %>%
  group_by(YEARS_ACTIVE) %>%
  summarise(
    CUMULATIVE_PRODUCTION = paste(CUMULATIVE_PRODUCTION, collapse = ", "),
    .groups = "drop"
  ) %>%
  arrange(YEARS_ACTIVE)

datatable(condensado, options = list(pageLength = 10))

4. Guardar resultado en CSV

write.csv(condensado, "tabla_condensada_por_anios.csv", row.names = FALSE)

5. Nube de puntos

nube_de_puntos <- ggplot(datos, aes(x = YEARS_ACTIVE, y = CUMULATIVE_PRODUCTION)) +
  geom_point(alpha = 0.15, color = "steelblue", size = 1.5) +
  geom_smooth(method = "lm", color = "red", se = FALSE, linewidth = 1) +
  labs(
    title = "Nube de Puntos: Años Activos vs Producción Acumulada",
    x = "Años Activos",
    y = "Producción Acumulada"
  ) +
  theme_minimal(base_size = 13)

print(nube_de_puntos)

ggsave("nube_de_puntos.png", nube_de_puntos, width = 9, height = 6, dpi = 300)

6. Conclusiones

cat("Listo. Se generaron los archivos:\n",
    "- tabla_condensada_por_anios.csv\n",
    "- nube_de_puntos.png\n")
## Listo. Se generaron los archivos:
##  - tabla_condensada_por_anios.csv
##  - nube_de_puntos.png