Se define el directorio de trabajo y se procede a importar la base de datos empleando la codificación Latin-1.
Se determina la frecuencia absoluta de las empresas operadoras.
Operador <- Datos$OPERADOR
TDFOperador <- as.data.frame(table(Operador))
TDFOperador
## Operador Freq
## 1 2932
## 2 Alcom 11
## 3 Allpetro 1
## 4 Alvopetro 16
## 5 Amerada Hess 3
## 6 Anadarko 15
## 7 Arclima 1
## 8 Aurizônia Petróleo 16
## 9 BG Brasil 9
## 10 BP Brasil 3
## 11 BP Energy 12
## 12 Cemes 1
## 13 Central Resources 6
## 14 Chevron Brasil 1
## 15 Chevron Frade 65
## 16 Cisco 1
## 17 Cowan Petróleo e Gás 3
## 18 Devon Brasil 13
## 19 Dommo Energia 115
## 20 Egesa 3
## 21 Eni Oil 9
## 22 EPG Brasil 8
## 23 Espigão 2
## 24 Esso Expl Offshore 1
## 25 Esso Explor e Des 1
## 26 ExxonMobil Brasil 4
## 27 Geopark Brasil 2
## 28 Great Oil 2
## 29 Guto & Cacal 2
## 30 Imetame 61
## 31 Integral 1
## 32 IPI 4
## 33 Karoon 8
## 34 Leros 1
## 35 Maha Energy 14
## 36 Marítima 2
## 37 Máxima 07 1
## 38 Newo 10
## 39 Nord 5
## 40 Norteoleum 23
## 41 Nova Petróleo Rec 57
## 42 Oceania 1
## 43 Oeste de Canoas 4
## 44 ONGC Campos 1
## 45 OP Energia 18
## 46 Panergy 5
## 47 Parnaíba Gás Natural 121
## 48 Partex Brasil 52
## 49 Perenco Brasil 4
## 50 Perícia 9
## 51 Petra Energia 28
## 52 Petrobras 25142
## 53 Petrogal Brasil 43
## 54 Petroil 19
## 55 PetroRio O&G 52
## 56 Petrosynergy 142
## 57 Phoenix 12
## 58 Proen 1
## 59 Quantra 12
## 60 Queiroz Galvão 19
## 61 Recôncavo E&P 41
## 62 Repsol Sinopec 13
## 63 Rosneft 13
## 64 Santana 47
## 65 SHB 40
## 66 Shell 3
## 67 Shell Brasil 115
## 68 Silver Marlin 5
## 69 Sipet 2
## 70 Statoil Brasil 10
## 71 Statoil Brasil O&G 106
## 72 Tecpetrol Brasil 1
## 73 Tek 3
## 74 Texaco BM-C-5 2
## 75 Total E&P do Brasil 8
## 76 Unocal 2
## 77 UP Petróleo 6
## 78 UTC Engenharia 1
## 79 Vanco 3
## 80 Vipetro 19
## 81 W. Washington 2
## 82 Wintershall BM-S-14 3
Se realiza la clasificación de los operadores según su tipo de empresa.
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
TDFOperador$Operadores <- ifelse(TDFOperador$Operador %in% c("Petrobras"), "Empresa Nacional Estatal",
ifelse(TDFOperador$Operador %in% c("PetroRio O&G","Recôncavo E&P","Dommo Energia","Parnaíba Gás Natural","Petra Energia","Petrosynergy","Petroil","Queiroz Galvão","SHB","Santana","Imetame","Panergy","OP Energia","Vipetro","Guto & Cacal", "Espigão","Oeste de Canoas","Nova Petróleo Rec","Norteoleum","Nord", "Newo","Máxima 07","Marítima","Alvopetro","Allpetro","Alcom", "Aurizônia Petróleo","Arclima","Central Resources","Cemes","Perícia"
),"Empresas Nacionales Privadas",
ifelse(TDFOperador$Operador %in% c("Shell","Shell Brasil","BP","BP Brasil","BP Energy","Total E&P do Brasil", "Chevron Brasil","Chevron Frade","ExxonMobil Brasil","Equinor", "Statoil Brasil","Statoil Brasil O&G","Repsol Sinopec","Eni Oil", "BG Brasil","Petrogal Brasil","Rosneft"),
"Empresas Extranjeras Mayores",
ifelse(TDFOperador$Operador %in% c("Wintershall BM-S-14","Unocal","Texaco BM-C-5","Devon Brasil", "Amerada Hess","Anadarko","Cowan Petróleo e Gás","ONGC Campos", "Partex Brasil","Perenco Brasil","Karoon","Maha Energy", "Geopark Brasil","Great Oil","Silver Marlin","Sipet","Tek", "Tecpetrol Brasil","Leros","Phoenix","Cisco","EPG Brasil", "Esso Expl Offshore","Esso Explor e Des","IPI","Integral"), "Empresas Extranjeras Independientes", "Otros"))))
head(TDFOperador$Operadores)
## [1] "Otros" "Empresas Nacionales Privadas"
## [3] "Empresas Nacionales Privadas" "Empresas Nacionales Privadas"
## [5] "Empresas Extranjeras Independientes" "Empresas Extranjeras Independientes"
Se calcula la distribución de frecuencias absoluta (ni) y relativa (hi) para cada grupo.
TDFOperador$Freq <- as.numeric(as.character(TDFOperador$Freq))
library(dplyr)
TDFOperador1 <- Datos$TDFOperador
TDFOperador1 <- TDFOperador %>%
group_by(Operadores) %>%
summarise(
ni = sum(Freq),
hi = round(sum(Freq) / sum(TDFOperador$Freq)*100, 2))
TDFOperador1 <- data.frame(TDFOperador1)
Se incorpora la fila de totales para las frecuencias absoluta y relativa.
TDFOperador1 <- TDFOperador1 [, c("Operadores", "ni", "hi")]
total_ni <- sum(TDFOperador1$ni)
total_hi <- 100
TDFOPERADORCOMPLETA <- rbind(TDFOperador1, data.frame(Operadores = "Total",
ni = total_ni,
hi = total_hi))
print(TDFOPERADORCOMPLETA)
## Operadores ni hi
## 1 Empresa Nacional Estatal 25142 85.01
## 2 Empresas Extranjeras Independientes 164 0.55
## 3 Empresas Extranjeras Mayores 414 1.40
## 4 Empresas Nacionales Privadas 894 3.02
## 5 Otros 2961 10.01
## 6 Total 29575 100.00
Se presenta la tabla con formato claro y profesional.
library(gt)
gt(TDFOPERADORCOMPLETA) %>%
tab_header(
title = md("**Cuadro No.1**"),
subtitle = "Operadores de los pozos petrolíferos en Brasil") %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")),
locations = cells_title()
) %>%
tab_style(
style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")),
locations = cells_column_labels()
) %>%
tab_options(
table.border.top.color = "#2E4053",
table.border.bottom.color = "#2E4053",
column_labels.border.bottom.color = "#2E4053",
data_row.padding = px(6))
| Cuadro No.1 | ||
| Operadores de los pozos petrolíferos en Brasil | ||
| Operadores | ni | hi |
|---|---|---|
| Empresa Nacional Estatal | 25142 | 85.01 |
| Empresas Extranjeras Independientes | 164 | 0.55 |
| Empresas Extranjeras Mayores | 414 | 1.40 |
| Empresas Nacionales Privadas | 894 | 3.02 |
| Otros | 2961 | 10.01 |
| Total | 29575 | 100.00 |
Se representa gráficamente la frecuencia absoluta de cada grupo.
TDFOPERADORCOMPLETA<- TDFOPERADORCOMPLETA[TDFOPERADORCOMPLETA$Operadores != "Total", ]
par(mar = c(9, 4, 4, 2))
barplot(TDFOPERADORCOMPLETA$ni,
main = "Gráfica N°1: Distribución en cantidad de operadores",
ylab = "Cantidad",
col = "#2E4053", names.arg = TDFOPERADORCOMPLETA$Operadores,
las = 2, cex.names = 0.6, cex.axis = 0.8, cex.main = 1)
mtext("Operadores", side = 1, line = 7, adj = 0.99)
Se muestra la distribución de la frecuencia absoluta con un rango ampliado en el eje Y.
par(mar = c(9, 4, 4, 2))
barplot(TDFOPERADORCOMPLETA$ni,
main = "Gráfica N°2: Distribución en cantidad de operadoreS",
ylab = "Cantidad",
col = "#2E4053", names.arg = TDFOPERADORCOMPLETA$Operadores,
las = 2, cex.names = 0.6, cex.axis = 0.8, cex.main = 1,
ylim = c(0,30000))
mtext("Operadores", side = 1, line = 7, adj = 0.99)
Se presenta la distribución porcentual de cada categoría.
par(mar = c(9, 4, 4, 2))
barplot(TDFOPERADORCOMPLETA$hi,
main = "Gráfica N°3: Distribución en porcentaje de participación de operadores",
ylab = "Porcentaje",
col = "#2E4053", names.arg = TDFOPERADORCOMPLETA$Operadores,
las = 2, cex.names = 0.6, cex.axis = 0.8, cex.main = 1)
mtext("Operadores", side = 1, line = 7, adj = 0.99)
Se presenta la gráfica porcentual con un límite superior de 100 %.
par(mar = c(9, 4, 4, 2))
barplot(TDFOPERADORCOMPLETA$hi,
main = "Gráfica N°4: Distribución en porcentaje de participación de operadoreS",
ylab = "Porcentaje",
col = "#2E4053", names.arg = TDFOPERADORCOMPLETA$Operadores,
las = 2, cex.names = 0.6, cex.axis = 0.8, cex.main = 1,
ylim = c(0,100))
mtext("Operadores", side = 1, line = 7, adj = 0.99)
Se genera un diagrama circular utilizando las bibliotecas ggplot2 y ggrepel para representar la participación relativa de cada grupo
library(ggplot2)
library(ggrepel)
datos_plot <- TDFOPERADORCOMPLETA
datos_plot$ymax <- cumsum(datos_plot$hi)
datos_plot$ymin <- c(0, head(datos_plot$ymax, n=-1))
datos_plot$posicion_label <- (datos_plot$ymax + datos_plot$ymin) / 2
colores <- c("#90CFFF", "#966BFF", "#FF6A8B", "#FFA88B", "#CCDE8B", "#20DE8B")
ggplot(datos_plot, aes(ymax=ymax, ymin=ymin, xmax=4, xmin=0, fill=Operadores)) +
geom_rect(color = "black") +
coord_polar(theta="y") +
geom_label_repel(aes(y = posicion_label, x = 4, label = paste0(round(hi, 2))),
size = 4,
nudge_x = 0.5,
show.legend = FALSE) +
scale_fill_manual(values = colores) +
ggtitle("Gráfica N°5: Distribución porcentual de operadores") +
theme_void()+
theme(
legend.position = "right",
plot.title = element_text(hjust = 0.5),
legend.background = element_rect(color = "black",
fill = "white",
linewidth = 0.5,
linetype = "solid"
),
legend.margin = margin(t = 10, r = 10, b = 10, l = 10)
)
Conclusiones <- data.frame(
Variable = "Tipo de operador petrolero",
`Rango [Min; Max]` = "N/A",
`Media (X̄)` = "N/A",
`Mediana (Me)` = "N/A",
`Moda (Mo)` = "Empresa Nacional Estatal",
`Varianza (S²)` = "N/A",
`Desv. Est. (S)` = "N/A",
`C.V. (%)` = "N/A",
`Asimetría (As)` = "N/A",
`Curtosis (K)` = "N/A",
`Valores Atípicos` = "N/A",
check.names = FALSE)
library(gt)
gt(Conclusiones) %>%
tab_header(
title = md("CONCLUSIONES Y ESTADÍSTICOS"),
subtitle = "Resumen de indicadores descriptivos"
) %>%
tab_source_note(source_note = "Autor: Caleb Yanez") %>%
cols_align(align = "center", columns = everything()) %>%
tab_style(
style = list(cell_fill(color = "#2E4053"), cell_text(color = "white", weight = "bold")),
locations = cells_title()
) %>%
tab_style(
style = list(cell_fill(color = "#F2F3F4"), cell_text(weight = "bold", color = "#2E4053")),
locations = cells_column_labels()
) %>%
tab_options(
table.border.top.color = "#2E4053",
table.border.bottom.color = "#2E4053",
column_labels.border.bottom.color = "#2E4053",
data_row.padding = px(6))
| CONCLUSIONES Y ESTADÍSTICOS | ||||||||||
| Resumen de indicadores descriptivos | ||||||||||
| Variable | Rango [Min; Max] | Media (X̄) | Mediana (Me) | Moda (Mo) | Varianza (S²) | Desv. Est. (S) | C.V. (%) | Asimetría (As) | Curtosis (K) | Valores Atípicos |
|---|---|---|---|---|---|---|---|---|---|---|
| Tipo de operador petrolero | N/A | N/A | N/A | Empresa Nacional Estatal | N/A | N/A | N/A | N/A | N/A | N/A |
| Autor: Caleb Yanez | ||||||||||
La moda corresponde a la categoría Empresa Nacional Estatal, ya que es el tipo de operador que presenta la mayor frecuencia dentro del conjunto de pozos petrolíferos analizados.