Cargar datos

Se establece el directorio de trabajo y se importan los datos originales, verificando su estructura para confirmar que las variables fueron reconocidas correctamente.

setwd("C:/Users/Usuario/Desktop/TRABAJO DE ESTADISTICA")
Datos <- read.csv("Pozos brasil 2.csv", header = TRUE, sep = ";", dec = ",", fileEncoding = "Latin1")
str(Datos)
## 'data.frame':    29575 obs. of  59 variables:
##  $ POCO                      : chr  "7-RO-123HP-RJS" "1-BP-7-RJS" "7-ARGO-4H-ESS" "7-ARGO-5H-ESS" ...
##  $ CADASTRO                  : num  7.43e+10 7.43e+10 3.43e+10 3.43e+10 3.43e+10 ...
##  $ OPERADOR                  : chr  "Petrobras" "BP Energy" "Shell Brasil" "Shell Brasil" ...
##  $ POCO_OPERADOR             : chr  "7RO123HPRJS" "ANU" "7ARGO4HESS" "7ARGO5HESS" ...
##  $ ESTADO                    : chr  "RJ" "RJ" "ES" "ES" ...
##  $ BACIA                     : chr  "Campos" "Campos" "Campos" "Campos" ...
##  $ BLOCO                     : chr  "" "C-M-473" "" "" ...
##  $ SIG_CAMPO                 : chr  "RO   " "" "ARGO " "ARGO " ...
##  $ CAMPO                     : chr  "RONCADOR" "" "ARGONAUTA" "ARGONAUTA" ...
##  $ TERRA_MAR                 : chr  "M" "M" "M" "M" ...
##  $ POCO_POS_ANP              : chr  "S" "S" "S" "S" ...
##  $ TIPO                      : chr  "Explotatório" "Exploratório" "Explotatório" "Explotatório" ...
##  $ CATEGORIA                 : chr  "Desenvolvimento" "Pioneiro" "Desenvolvimento" "Desenvolvimento" ...
##  $ RECLASSIFICACAO           : chr  "PRODUTOR COMERCIAL DE PETRÓLEO" "PORTADOR DE PETRÓLEO" "ABANDONADO POR OUTRAS RAZÕES" "INDEFINIDO" ...
##  $ SITUACAO                  : chr  "PRODUTOR" "ABANDONADO POR LOGÍSTICA EXPLORATÓRIA" "ABANDONADO DEFINITIVAMENTE" "PRODUTOR" ...
##  $ INICIO                    : chr  "03/03/2012" "14/03/2012" "12/04/2012" "14/04/2012" ...
##  $ TERMINO                   : chr  "10/03/2013" "20/09/2012" "19/09/2012" "02/05/2013" ...
##  $ CONCLUSAO                 : chr  "10/03/2013" "19/10/2012" "28/09/2012" "13/05/2013" ...
##  $ TITULARIDADE              : chr  "Público" "Público" "Público" "Público" ...
##  $ LATITUDE_BASE_4C          : chr  "-21:57:45,630" "-23:06:09,622" "-21:08:06,801" "-21:08:12,535" ...
##  $ LONGITUDE_BASE_4C         : chr  "-39:44:01,130" "-40:00:41,295" "-39:46:53,226" "-39:46:49,296" ...
##  $ LATITUDE_BASE_DD          : num  -22 -23.1 -21.1 -21.1 -21.1 ...
##  $ LONGITUDE_BASE_DD         : num  -39.7 -40 -39.8 -39.8 -39.8 ...
##  $ DATUM_HORIZONTAL          : chr  "SIRGAS2000" "SIRGAS2000" "SIRGAS2000" "SIRGAS2000" ...
##  $ TIPO_DE_COORDENADA_DE_BASE: chr  "Definitiva" "Definitiva" "Definitiva" "Definitiva" ...
##  $ DIRECAO                   : chr  "Horizontal" "Vertical" "Horizontal" "Horizontal" ...
##  $ PROFUNDIDADE_VERTICAL_M   : num  -3145 6900 2937 2934 2953 ...
##  $ PROFUNDIDADE_SONDADOR_M   : num  4050 6925 3809 4575 4570 ...
##  $ PROFUNDIDADE_MEDIDA_M     : num  4050 6925 3809 4575 4570 ...
##  $ REFERENCIA_DE_PROFUNDIDADE: chr  "MR" "MR" "MR" "MR" ...
##  $ MESA_ROTATIVA             : num  24 25 24.2 24.2 24.2 ...
##  $ COTA_ALTIMETRICA_M        : num  0 0 0 0 0 ...
##  $ LAMINA_D_AGUA_M           : num  1827 2730 1706 1705 1654 ...
##  $ DATUM_VERTICAL            : chr  "NM" "NM" "NM" "NM" ...
##  $ UNIDADE_ESTRATIGRAFICA    : chr  "" "" "" "" ...
##  $ GEOLOGIA_GRUPO_FINAL      : chr  "Campos" "Lagoa Feia" "Campos" "Campos" ...
##  $ GEOLOGIA_FORMACAO_FINAL   : chr  "Carapebus" "Macabu" "Ubatuba" "Ubatuba" ...
##  $ GEOLOGIA_MEMBRO_FINAL     : chr  "" "" "" "" ...
##  $ CDPE                      : chr  "Existe" "Existe" "Existe" "" ...
##  $ AGP                       : chr  "" "" "" "" ...
##  $ PC                        : chr  "" "Existe" "" "" ...
##  $ PAG                       : chr  "" "" "" "" ...
##  $ PERFIS_CONVENCIONAIS      : chr  "" "Existe" "" "" ...
##  $ DURANTE_PERFURACAO        : chr  "Existe" "Existe" "Existe" "Existe" ...
##  $ PERFIS_DIGITAIS           : chr  "" "" "" "" ...
##  $ PERFIS_PROCESSADOS        : chr  "" "" "" "" ...
##  $ PERFIS_ESPECIAIS          : chr  "" "" "" "" ...
##  $ AMOSTRA_LATERAL           : chr  "" "Existe" "" "" ...
##  $ SISMICA                   : chr  "" "Existe" "" "" ...
##  $ TABELA_TEMPO_PROFUNDIDADE : chr  "" "" "" "" ...
##  $ DADOS_DIRECIONAIS         : chr  "Existe" "Existe" "Existe" "Existe" ...
##  $ TESTE_A_CABO              : chr  "Existe" "Existe" "" "" ...
##  $ TESTE_DE_FORMACAO         : chr  "" "" "" "" ...
##  $ CANHONEIO                 : chr  "" "" "" "" ...
##  $ TESTEMUNHO                : chr  "" "" "" "" ...
##  $ GEOQUIMICA                : chr  "" "" "" "" ...
##  $ SIG_SONDA                 : chr  "SS-49" "DS4" "NB2" "NB2" ...
##  $ NOM_SONDA                 : chr  "SEDCO 707" "Deep Ocean Clarion" "Bully 2" "Bully 2" ...
##  $ DHA_ATUALIZACAO           : chr  "28/1/18 5:00" "28/1/18 5:00" "28/1/18 5:00" "28/1/18 5:00" ...

Tabla de distribuciòn de frecuencia

Aquí se obtiene la frecuencia absoluta de los diferentes estados operativos de los pozos.

Situación <- Datos$SITUACAO
TDFSituación <- as.data.frame(table(Situación))
TDFSituación
##                                                                              Situación
## 1                                                                                     
## 2                                ABANDONADO AGUARDANDO ABANDONO DEFINITIVO/ARRASAMENTO
## 3                                         ABANDONADO AGUARDANDO REINÍCIO DE PERFURAÇÃO
## 4                                                           ABANDONADO DEFINITIVAMENTE
## 5                                                ABANDONADO POR LOGÍSTICA EXPLORATÓRIA
## 6  ABANDONADO/PARADO AGUARDANDO INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO
## 7                                                                             ARRASADO
## 8                                                         CEDIDO PARA PRODUÇÃO DE ÁGUA
## 9                                                                          DE DESCARTE
## 10                                                                           DEVOLVIDO
## 11                                                                         EM ABANDONO
## 12                           EM INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO
## 13                                                                       EM PERFURAÇÃO
## 14                                               EQUIPADO AGUARDANDO INÍCIO DE INJEÇÃO
## 15                                              EQUIPADO AGUARDANDO INÍCIO DE PRODUÇÃO
## 16                                                                             INJETOR
## 17                                                                               OUTRO
## 18                                                       PRODUÇÃO DE AGUA PARA INJEÇÃO
## 19                                                                            PRODUTOR
##    Freq
## 1   824
## 2  3120
## 3     2
## 4  5074
## 5   719
## 6   253
## 7  2193
## 8   262
## 9    40
## 10 1446
## 11    8
## 12 2711
## 13    6
## 14    9
## 15   60
## 16 2653
## 17   96
## 18  187
## 19 9912

Agrupación por condición

En este bloque se recodifican los valores originales en grupos operativos más generales.

library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
TDFSituación$Condición <- ifelse(TDFSituación$Situación %in% c("ABANDONADO AGUARDANDO ABANDONO DEFINITIVO/ARRASAMENTO
", "ABANDONADO AGUARDANDO REINÍCIO DE PERFURAÇÃO", "ABANDONADO DEFINITIVAMENTE", "ABANDONADO POR LOGÍSTICA EXPLORATÓRIA
", "ABANDONADO/PARADO AGUARDANDO INTERVENÇÃO PARA AVALIAÇÃO, COMPLETAÇÃO OU RESTAURAÇÃO", "EM ABANDONO"), "Abandonados",
                                 ifelse(TDFSituación$Situación %in% c("EM ABANDONO", "EM PERFURAÇÃO00"), "Intervención", 
                                        ifelse(TDFSituación$Situación %in% c("EQUIPADO AGUARDANDO INÍCIO DE PRODUÇÃO0", "EQUIPADO AGUARDANDO INÍCIO DE INJEÇÃO"), "Equipado en espera", 
                                               ifelse(TDFSituación$Situación %in% c("INJETOR", "PRODUTOR"), "En funcionamiento", 
                                                      ifelse(TDFSituación$Situación %in% c("CEDIDO PARA PRODUÇÃO DE ÁGUA", "PRODUÇÃO DE AGUA PARA INJEÇÃO"), "Producción de agua",
                                                             ifelse(TDFSituación$Situación %in% c("DEVOLVIDO", "DE DESCARTE"), "Descartado",
                                                                    ifelse(TDFSituación$Situación %in% c("ARRASADO"), "Devastado","Otros")))))))
head(TDFSituación$Condición)
## [1] "Otros"       "Otros"       "Abandonados" "Abandonados" "Otros"      
## [6] "Abandonados"

Frecuencias absoluta y relativa

Aquí se calculan las frecuencias por cada categoría operativa.

TDFSituación$Freq <- as.numeric(as.character(TDFSituación$Freq))
library(dplyr)
TDFSituación1 <- Datos$TDFSituación
TDFSituación1 <- TDFSituación %>%
  group_by(Condición) %>%
  summarise( 
    ni = sum(Freq),
    hi = round(sum(Freq) / sum(TDFSituación$Freq)*100, 2))

TDFSituación1 <- data.frame(TDFSituación1)

Construcción del cuadro con totales

Se agrega la fila acumulada y se forma la tabla final.

TDFSituación1 <- TDFSituación1 [, c("Condición", "ni", "hi")]
total_ni <- sum(TDFSituación1$ni) 
total_hi <- 100
TDFSituacióncompleta <- rbind(TDFSituación1, data.frame( Condición = "Total",
                                                          ni = total_ni,
                                                          hi = total_hi))
print(TDFSituacióncompleta)
##            Condición    ni     hi
## 1        Abandonados  5337  18.05
## 2         Descartado  1486   5.02
## 3          Devastado  2193   7.42
## 4  En funcionamiento 12565  42.49
## 5 Equipado en espera     9   0.03
## 6              Otros  7536  25.48
## 7 Producción de agua   449   1.52
## 8              Total 29575 100.00

Presentación tabular formateada

Se genera un cuadro formal utilizando gt.

library(gt)
gt(TDFSituacióncompleta) %>%
  tab_header( 
    title = md("**Cuadro No.1**"), 
    subtitle = "Situación de los pozos petrolíferos en Brasil") %>% 
  tab_style(style = list(cell_text(align = "center")), locations = list()) 
Cuadro No.1
Situación de los pozos petrolíferos en Brasil
Condición ni hi
Abandonados 5337 18.05
Descartado 1486 5.02
Devastado 2193 7.42
En funcionamiento 12565 42.49
Equipado en espera 9 0.03
Otros 7536 25.48
Producción de agua 449 1.52
Total 29575 100.00

Histograma de frecuencia absoluta local (ni)

Este gráfico muestra la cantidad de pozos por categoría, sin incluir el total.

TDFSituaciónfinal <- TDFSituacióncompleta[TDFSituacióncompleta$Condición != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$ni,
        main = "Gráfica N°1: Estado de los pozos petrolíferos en Brasil",
        ylab = "Cantidad",
        col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)

Histograma de frecuencia absoluta global (ni)

Este bloque amplía el rango del eje Y para observar categorías dominantes.

par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$ni,
        main = "Gráfica N°2: Estado de los pozos petrolíferos en Brasil",
        ylab = "Cantidad",
        col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 0.99,
        ylim = c(0,30000)) 
mtext("Condición", side = 1, line = 7)

Histograma de frecuencia relativa local (hi)

Aquí se representa el porcentaje de pozos por cada categoría.

par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$hi,
        main = "Gráfica N°3: Porcentaje de la condición de los pozos en Brasil",
        ylab = "Porcentaje",
        col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)

Histograma de frecuencia relativa global (hi)

Este bloque ajusta el eje Y hasta el 100%.

par(mar = c(9, 4, 4, 2))
barplot(TDFSituaciónfinal$hi,
        main = "Gráfica N°4: Porcentaje de la condición de los pozos en Brasil",
        ylab = "Porcentaje",
        col = "darkseagreen1", names.arg = TDFSituaciónfinal$Condición,
        las = 2, cex.names = 0.8, cex.axis = 0.8, cex.main = 1)
mtext("Condición", side = 1, line = 7)

Diagrama circular

El diagrama representa la proporción de cada categoría respecto del total.

pie(TDFSituaciónfinal$hi, 
    main = "Gráfica N°5: Distribución porcentual de las condiciones de los pozos petroliferos en Brasil", 
    radius = 0.8,
    labels = paste0(round(TDFSituaciónfinal$hi,2)),
    col = c("#FFFFE5", "#F7FCB9", "#D9F0A3", "#ADDD8E", "#006837"),
    cex.main = 0.8,
    init.angle = 360)

legend(x = -1.75, y =1,
       legend = TDFSituaciónfinal$Condición,
       fill = c("#FFFFE5", "#F7FCB9", "#D9F0A3", "#ADDD8E", "#006837"),
       cex = 0.7,
       title = "Condiciones de los pozos")