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" ...
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
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"
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)
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
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 |
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)
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)
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)
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)
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")