Avaliando dados e reduzindo as dimensões

Author

Ricardo Accioly

Published

June 27, 2025

Entrada de dados no R

Lendo dados de arquivos csv

library(readr)
url <- "https://www.gov.br/anp/pt-br/centrais-de-conteudo/dados-abertos/arquivos-acervo-de-dados-tecnicos/tabela-pocos.csv"

O read_delim permite que seja definido o tipo de delimitador dos dados

pocos <- read_delim(url, delim = ";", locale= locale(decimal_mark = ","), col_names = TRUE)
head(pocos)
#> # A tibble: 6 × 60
#>   POCO        CADASTRO OPERADOR POCO_OPERADOR ESTADO BACIA BLOCO SIG_CAMPO CAMPO
#>   <chr>       <chr>    <chr>    <chr>         <chr>  <chr> <chr> <chr>     <chr>
#> 1 7-PRG-59H-… 7428102… Equinor… BMC7B15       RJ     Camp… <NA>  "PRG  "   PERE…
#> 2 7-GVR-26D-… 5009002… Eneva    7GVR26DMA     MA     Parn… PN-T… "GVR  "   GAVI…
#> 3 6-BRSA-134… 7428102… Petrobr… 6MLS233RJS    RJ     Camp… <NA>  "MLS  "   MARL…
#> 4 7-CP-1505D… 9012002… Carmo    7CP1505DSE    SE     Serg… <NA>  "CP   "   CARM…
#> 5 7-GVP-6-MA  5009002… Eneva    7GVP6MA       MA     Parn… PN-T… "GVP  "   GAVI…
#> 6 7-TIE-1D-BA 2024002… SPE Tiê… 7TIE1DBA      BA     Recô… <NA>  "TIE  "   TIÊ  
#> # ℹ 51 more variables: TERRA_MAR <chr>, POCO_POS_ANP <chr>, TIPO <chr>,
#> #   CATEGORIA <chr>, RECLASSIFICACAO <chr>, SITUACAO <chr>, INICIO <chr>,
#> #   TERMINO <chr>, CONCLUSAO <chr>, TITULARIDADE <chr>, LATITUDE_BASE_4C <chr>,
#> #   LONGITUDE_BASE_4C <chr>, LATITUDE_BASE_DD <dbl>, LONGITUDE_BASE_DD <dbl>,
#> #   DATUM_HORIZONTAL <chr>, TIPO_DE_COORDENADA_DE_BASE <chr>, DIRECAO <chr>,
#> #   PROFUNDIDADE_VERTICAL_M <dbl>, PROFUNDIDADE_SONDADOR_M <dbl>,
#> #   PROFUNDIDADE_MEDIDA_M <dbl>, REFERENCIA_DE_PROFUNDIDADE <chr>, …

Bibliotecas

Vamos carregar as bibliotecas que serão usadas na manipulação e visualização de dados.

O pacote tidyverse carrega diversos pacotes muito uteis na manipulação e visualização de dados

Vamos primeiro conhecer o que tem na base de dados pocos. A base de dados possui 30566 linhas

class(pocos)  # Tipo de base de dados
#> [1] "spec_tbl_df" "tbl_df"      "tbl"         "data.frame"

Dados de poços

Os dados da tabela poços tem 60 colunas, mas vejam que existem diversas variáveis com dados ausentes “NA”.

Variaveis com dados ausentes

glimpse(pocos) # estrutura da base de dados
#> Rows: 30,566
#> Columns: 60
#> $ POCO                       <chr> "7-PRG-59H-RJS", "7-GVR-26D-MA", "6-BRSA-13…
#> $ CADASTRO                   <chr> "74281028968", "50090029009", "74281028991"…
#> $ OPERADOR                   <chr> "Equinor Brasil", "Eneva", "Petrobras", "Ca…
#> $ POCO_OPERADOR              <chr> "BMC7B15", "7GVR26DMA", "6MLS233RJS", "7CP1…
#> $ ESTADO                     <chr> "RJ", "MA", "RJ", "SE", "MA", "BA", "SE", "…
#> $ BACIA                      <chr> "Campos", "Parnaíba", "Campos", "Sergipe", …
#> $ BLOCO                      <chr> NA, "PN-T-68", NA, NA, "PN-T-67", NA, NA, N…
#> $ SIG_CAMPO                  <chr> "PRG  ", "GVR  ", "MLS  ", "CP   ", "GVP  "…
#> $ CAMPO                      <chr> "PEREGRINO", "GAVIÃO REAL", "MARLIM SUL", "…
#> $ TERRA_MAR                  <chr> "M", "T", "M", "T", "T", "T", "T", "T", "T"…
#> $ POCO_POS_ANP               <chr> "S", "S", "S", "S", "S", "S", "S", "S", "S"…
#> $ TIPO                       <chr> "7 ", "7 ", "6 ", "7 ", "7 ", "7 ", "7 ", "…
#> $ CATEGORIA                  <chr> "Desenvolvimento", "Desenvolvimento", "Jazi…
#> $ RECLASSIFICACAO            <chr> "INDEFINIDO", "ABANDONADO POR OUTRAS RAZÕES…
#> $ SITUACAO                   <chr> "ABANDONADO PERMANENTEMENTE", "ARRASADO", "…
#> $ INICIO                     <chr> "24/04/2017 00:00", "21/06/2017 00:00", "28…
#> $ TERMINO                    <chr> "01/05/2017 00:00", "05/07/2017 00:00", "16…
#> $ CONCLUSAO                  <chr> "13/05/2017 00:00", "11/07/2017 00:00", "30…
#> $ TITULARIDADE               <chr> "Público", "Público", "Público", "Público",…
#> $ LATITUDE_BASE_4C           <chr> "-23:17:45,778", "-04:51:16,170", "-22:30:5…
#> $ LONGITUDE_BASE_4C          <chr> "-41:12:28,246", "-44:22:32,123", "-40:01:0…
#> $ LATITUDE_BASE_DD           <dbl> -23.296049, -4.854492, -22.515081, -10.6391…
#> $ LONGITUDE_BASE_DD          <dbl> -41.20785, -44.37559, -40.01919, -36.98067,…
#> $ DATUM_HORIZONTAL           <chr> "SIRGAS2000", "SIRGAS2000", "SIRGAS2000", "…
#> $ TIPO_DE_COORDENADA_DE_BASE <chr> "Definitiva", "Definitiva", "Definitiva", "…
#> $ DIRECAO                    <chr> "Horizontal", "Direcional", "Vertical", "Di…
#> $ PROFUNDIDADE_VERTICAL_M    <dbl> 760.00, 1470.76, -4572.00, -834.70, 1344.00…
#> $ PROFUNDIDADE_SONDADOR_M    <dbl> 760.00, 2210.00, 4600.00, 935.00, 1430.00, …
#> $ PROFUNDIDADE_MEDIDA_M      <dbl> 760.00, 2211.00, 4604.00, 934.30, 1430.00, …
#> $ REFERENCIA_DE_PROFUNDIDADE <chr> "MR", "MR", "MR", "MR", "MR", "MR", "MR", "…
#> $ MESA_ROTATIVA              <dbl> 50.00, 143.00, 32.00, 55.78, 86.00, 109.77,…
#> $ COTA_ALTIMETRICA_M         <dbl> 0.00, 137.00, 0.00, 50.78, 80.00, 103.84, 6…
#> $ LAMINA_D_AGUA_M            <dbl> 122, 0, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12…
#> $ DATUM_VERTICAL             <chr> "NM", "NM", "NM", "NM", "NM", "NM", "NM", "…
#> $ UNIDADE_ESTRATIGRAFICA     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ GEOLOGIA_GRUPO_FINAL       <chr> "Campos", "Canindé", "Lagoa Feia", "Corurip…
#> $ GEOLOGIA_FORMACAO_FINAL    <chr> "Carapebus", "Poti", "Macabu", "Barra de It…
#> $ GEOLOGIA_MEMBRO_FINAL      <chr> NA, NA, NA, NA, NA, "Boipeba", NA, NA, NA, …
#> $ CDPE                       <chr> "Existe", "Existe", "Existe", "Existe", "Ex…
#> $ AGP                        <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ PC                         <chr> NA, NA, "Existe", NA, NA, NA, NA, NA, NA, N…
#> $ PAG                        <chr> NA, "Existe", "Existe", NA, "Existe", NA, N…
#> $ PERFIS_CONVENCIONAIS       <chr> NA, "Existe", "Existe", "Existe", "Existe",…
#> $ DURANTE_PERFURACAO         <chr> NA, NA, "Existe", NA, NA, NA, NA, NA, NA, N…
#> $ PERFIS_DIGITAIS            <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ PERFIS_PROCESSADOS         <chr> NA, NA, "Existe", "Existe", "Existe", NA, "…
#> $ PERFIS_ESPECIAIS           <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ AMOSTRA_LATERAL            <chr> NA, NA, "Existe", NA, NA, NA, NA, NA, NA, N…
#> $ SISMICA                    <chr> NA, NA, "Existe", NA, NA, NA, NA, NA, NA, N…
#> $ TABELA_TEMPO_PROFUNDIDADE  <chr> NA, NA, "Existe", NA, NA, NA, NA, NA, NA, N…
#> $ DADOS_DIRECIONAIS          <chr> NA, "Existe", "Existe", "Existe", "Existe",…
#> $ TESTE_A_CABO               <chr> NA, "Existe", "Existe", "Existe", NA, NA, "…
#> $ TESTE_DE_FORMACAO          <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ CANHONEIO                  <chr> NA, NA, NA, "Existe", NA, NA, NA, "Existe",…
#> $ TESTEMUNHO                 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ GEOQUIMICA                 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ SIG_SONDA                  <chr> "DR-B", "GREAT120 (TUS 120)", "NS-33", "EBS…
#> $ NOM_SONDA                  <chr> "DRILLINGRIG-B", "GREAT - 120", "NORBE IX",…
#> $ ATINGIU_PRESAL             <chr> "I", "I", "S", "I", "I", "I", "I", "I", "I"…
#> $ DHA_ATUALIZACAO            <chr> "05/11/2023 05:00", "05/11/2023 05:00", "05…

Criando um filtro de dados ausentes

n <-  nrow(pocos)

## Calculando razão de valores ausentes
val_ausentes_df <- pocos %>% 
  summarize(across(everything(), ~ sum(is.na(.)))) %>% 
  pivot_longer(everything(), names_to = "variavel", values_to = "num_val_ausentes") %>% 
  mutate(razao_val_ausente = num_val_ausentes / n)

## Vendo resultado
knitr::kable(val_ausentes_df, booktabs = TRUE)
variavel num_val_ausentes razao_val_ausente
POCO 0 0.0000000
CADASTRO 0 0.0000000
OPERADOR 2926 0.0957273
POCO_OPERADOR 0 0.0000000
ESTADO 0 0.0000000
BACIA 0 0.0000000
BLOCO 3792 0.1240594
SIG_CAMPO 4107 0.1343650
CAMPO 4107 0.1343650
TERRA_MAR 0 0.0000000
POCO_POS_ANP 0 0.0000000
TIPO 0 0.0000000
CATEGORIA 0 0.0000000
RECLASSIFICACAO 1263 0.0413204
SITUACAO 108 0.0035333
INICIO 0 0.0000000
TERMINO 1860 0.0608519
CONCLUSAO 146 0.0047765
TITULARIDADE 0 0.0000000
LATITUDE_BASE_4C 0 0.0000000
LONGITUDE_BASE_4C 0 0.0000000
LATITUDE_BASE_DD 0 0.0000000
LONGITUDE_BASE_DD 0 0.0000000
DATUM_HORIZONTAL 0 0.0000000
TIPO_DE_COORDENADA_DE_BASE 0 0.0000000
DIRECAO 0 0.0000000
PROFUNDIDADE_VERTICAL_M 18066 0.5910489
PROFUNDIDADE_SONDADOR_M 1004 0.0328470
PROFUNDIDADE_MEDIDA_M 16550 0.5414513
REFERENCIA_DE_PROFUNDIDADE 0 0.0000000
MESA_ROTATIVA 0 0.0000000
COTA_ALTIMETRICA_M 15971 0.5225087
LAMINA_D_AGUA_M 13946 0.4562586
DATUM_VERTICAL 13437 0.4396061
UNIDADE_ESTRATIGRAFICA 30566 1.0000000
GEOLOGIA_GRUPO_FINAL 27388 0.8960283
GEOLOGIA_FORMACAO_FINAL 27127 0.8874894
GEOLOGIA_MEMBRO_FINAL 30362 0.9933259
CDPE 21320 0.6975070
AGP 23656 0.7739318
PC 22122 0.7237453
PAG 29215 0.9558006
PERFIS_CONVENCIONAIS 21982 0.7191651
DURANTE_PERFURACAO 27530 0.9006740
PERFIS_DIGITAIS 9824 0.3214029
PERFIS_PROCESSADOS 29516 0.9656481
PERFIS_ESPECIAIS 29860 0.9769024
AMOSTRA_LATERAL 29604 0.9685271
SISMICA 28871 0.9445462
TABELA_TEMPO_PROFUNDIDADE 29676 0.9708827
DADOS_DIRECIONAIS 22650 0.7410194
TESTE_A_CABO 26192 0.8568998
TESTE_DE_FORMACAO 29926 0.9790617
CANHONEIO 29326 0.9594320
TESTEMUNHO 30133 0.9858339
GEOQUIMICA 27420 0.8970752
SIG_SONDA 86 0.0028136
NOM_SONDA 4120 0.1347903
ATINGIU_PRESAL 21767 0.7121311
DHA_ATUALIZACAO 0 0.0000000
## filtro
val_ausente_filtro <- val_ausentes_df %>% 
  filter(razao_val_ausente <= 0.5) %>% 
  pull(variavel)

# Aplicando o filtro
poco_filtrado <- pocos %>% 
  select(all_of(val_ausente_filtro))

Visualizando os dados filtrados

poco_filtrado %>% 
  glimpse() # estrutura da base de dados filtrada
#> Rows: 30,566
#> Columns: 35
#> $ POCO                       <chr> "7-PRG-59H-RJS", "7-GVR-26D-MA", "6-BRSA-13…
#> $ CADASTRO                   <chr> "74281028968", "50090029009", "74281028991"…
#> $ OPERADOR                   <chr> "Equinor Brasil", "Eneva", "Petrobras", "Ca…
#> $ POCO_OPERADOR              <chr> "BMC7B15", "7GVR26DMA", "6MLS233RJS", "7CP1…
#> $ ESTADO                     <chr> "RJ", "MA", "RJ", "SE", "MA", "BA", "SE", "…
#> $ BACIA                      <chr> "Campos", "Parnaíba", "Campos", "Sergipe", …
#> $ BLOCO                      <chr> NA, "PN-T-68", NA, NA, "PN-T-67", NA, NA, N…
#> $ SIG_CAMPO                  <chr> "PRG  ", "GVR  ", "MLS  ", "CP   ", "GVP  "…
#> $ CAMPO                      <chr> "PEREGRINO", "GAVIÃO REAL", "MARLIM SUL", "…
#> $ TERRA_MAR                  <chr> "M", "T", "M", "T", "T", "T", "T", "T", "T"…
#> $ POCO_POS_ANP               <chr> "S", "S", "S", "S", "S", "S", "S", "S", "S"…
#> $ TIPO                       <chr> "7 ", "7 ", "6 ", "7 ", "7 ", "7 ", "7 ", "…
#> $ CATEGORIA                  <chr> "Desenvolvimento", "Desenvolvimento", "Jazi…
#> $ RECLASSIFICACAO            <chr> "INDEFINIDO", "ABANDONADO POR OUTRAS RAZÕES…
#> $ SITUACAO                   <chr> "ABANDONADO PERMANENTEMENTE", "ARRASADO", "…
#> $ INICIO                     <chr> "24/04/2017 00:00", "21/06/2017 00:00", "28…
#> $ TERMINO                    <chr> "01/05/2017 00:00", "05/07/2017 00:00", "16…
#> $ CONCLUSAO                  <chr> "13/05/2017 00:00", "11/07/2017 00:00", "30…
#> $ TITULARIDADE               <chr> "Público", "Público", "Público", "Público",…
#> $ LATITUDE_BASE_4C           <chr> "-23:17:45,778", "-04:51:16,170", "-22:30:5…
#> $ LONGITUDE_BASE_4C          <chr> "-41:12:28,246", "-44:22:32,123", "-40:01:0…
#> $ LATITUDE_BASE_DD           <dbl> -23.296049, -4.854492, -22.515081, -10.6391…
#> $ LONGITUDE_BASE_DD          <dbl> -41.20785, -44.37559, -40.01919, -36.98067,…
#> $ DATUM_HORIZONTAL           <chr> "SIRGAS2000", "SIRGAS2000", "SIRGAS2000", "…
#> $ TIPO_DE_COORDENADA_DE_BASE <chr> "Definitiva", "Definitiva", "Definitiva", "…
#> $ DIRECAO                    <chr> "Horizontal", "Direcional", "Vertical", "Di…
#> $ PROFUNDIDADE_SONDADOR_M    <dbl> 760.00, 2210.00, 4600.00, 935.00, 1430.00, …
#> $ REFERENCIA_DE_PROFUNDIDADE <chr> "MR", "MR", "MR", "MR", "MR", "MR", "MR", "…
#> $ MESA_ROTATIVA              <dbl> 50.00, 143.00, 32.00, 55.78, 86.00, 109.77,…
#> $ LAMINA_D_AGUA_M            <dbl> 122, 0, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12…
#> $ DATUM_VERTICAL             <chr> "NM", "NM", "NM", "NM", "NM", "NM", "NM", "…
#> $ PERFIS_DIGITAIS            <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ SIG_SONDA                  <chr> "DR-B", "GREAT120 (TUS 120)", "NS-33", "EBS…
#> $ NOM_SONDA                  <chr> "DRILLINGRIG-B", "GREAT - 120", "NORBE IX",…
#> $ DHA_ATUALIZACAO            <chr> "05/11/2023 05:00", "05/11/2023 05:00", "05…

Salvando os dados filtrados

write_csv(poco_filtrado, "pocos_filtrados.csv")