Avaliando dados e reduzindo as dimensões

Author

Ricardo Accioly

Published

November 11, 2025

Entrada de dados no R

Lendo dados de arquivos csv

library(readxl)
# url <- "https://www.gov.br/anp/pt-br/centrais-de-conteudo/dados-abertos/arquivos-acervo-de-dados-tecnicos/tabela-pocos.csv"
# Não funciona mais a ANP mudou o acesso.

Lendo arquivo excel

pocos <- read_xlsx("Tabela_pocos_2025_Novembro_09.xlsx")
head(pocos)
#> # A tibble: 6 × 58
#>   POCO        CADASTRO OPERADOR POCO_OPERADOR ESTADO BACIA BLOCO SIG_CAMPO CAMPO
#>   <chr>          <dbl> <chr>    <chr>         <chr>  <chr> <chr> <chr>     <chr>
#> 1 1-AA-1-RN    7.21e11 <NA>     1AA  0001  RN RN     Poti… Bras… <NA>      <NA> 
#> 2 1-ABV-1D-RN  7.21e11 PetroRe… 1ABV 0001D RN RN     Poti… BT-P… PAT       PATA…
#> 3 1-AB-1A-SE   9.01e11 <NA>     1AB  0001A SE SE     Serg… Bras… <NA>      <NA> 
#> 4 1-AB-1-BA    2.02e11 <NA>     1AB  0001  BA BA     Tuca… Bras… <NA>      <NA> 
#> 5 1-AB-1-PA    6.00e11 <NA>     1AB  0001  PA PA     Amaz… Bras… <NA>      <NA> 
#> 6 1-AB-1-SE    9.01e11 <NA>     1AB  0001  SE SE     Serg… Bras… <NA>      <NA> 
#> # ℹ 49 more variables: TERRA_MAR <chr>, POCO_POS_ANP <chr>, TIPO <dbl>,
#> #   CATEGORIA <chr>, RECLASSIFICACAO <chr>, SITUACAO <chr>, INÍCIO <dttm>,
#> #   TÉRMINO <dttm>, CONCLUSAO <dttm>, TITULARIDADE <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 31131 linhas

class(pocos)  # Tipo de base de dados
#> [1] "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: 31,131
#> Columns: 58
#> $ POCO                       <chr> "1-AA-1-RN", "1-ABV-1D-RN", "1-AB-1A-SE", "…
#> $ CADASTRO                   <dbl> 721000712200, 721000514700, 901200015200, 2…
#> $ OPERADOR                   <chr> NA, "PetroRecôncavo", NA, NA, NA, NA, NA, N…
#> $ POCO_OPERADOR              <chr> "1AA  0001  RN", "1ABV 0001D RN", "1AB  000…
#> $ ESTADO                     <chr> "RN", "RN", "SE", "BA", "PA", "SE", "SP", "…
#> $ BACIA                      <chr> "Potiguar", "Potiguar", "Sergipe", "Tucano …
#> $ BLOCO                      <chr> "Brasil", "BT-POT-9", "Brasil", "Brasil", "…
#> $ SIG_CAMPO                  <chr> NA, "PAT", NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ CAMPO                      <chr> NA, "PATATIVA", NA, NA, NA, NA, NA, NA, NA,…
#> $ TERRA_MAR                  <chr> "T", "T", "T", "T", "T", "T", "T", "T", "T"…
#> $ POCO_POS_ANP               <chr> "N", "N", "N", "N", "N", "N", "N", "N", "N"…
#> $ TIPO                       <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
#> $ CATEGORIA                  <chr> "Pioneiro", "Pioneiro", "Pioneiro", "Pionei…
#> $ RECLASSIFICACAO            <chr> "SECO SEM INDÍCIOS", "SECO SEM INDÍCIOS", "…
#> $ SITUACAO                   <chr> "CEDIDO PARA A CAPTAÇÃO DE ÁGUA", "ABANDONA…
#> $ INÍCIO                     <dttm> 1984-01-21, 1997-03-17, 1963-11-11, 1964-0…
#> $ TÉRMINO                    <dttm> 1984-01-29, 1997-05-23, 1964-06-30, 1964-0…
#> $ CONCLUSAO                  <dttm> 1984-01-29, 1997-05-23, 1964-06-30, 1964-0…
#> $ TITULARIDADE               <chr> "Público", "Público", "Público", "Público",…
#> $ LATITUDE_BASE_DD           <dbl> -4.9180856, -5.4182733, -11.0525608, -9.987…
#> $ LONGITUDE_BASE_DD          <dbl> -37.22464, -37.64420, -37.14529, -38.67656,…
#> $ DATUM_HORIZONTAL           <chr> "SIRGAS2000", "SIRGAS2000", "SIRGAS2000", "…
#> $ TIPO_DE_COORDENADA_DE_BASE <chr> "Definitiva", "Definitiva", "Definitiva", "…
#> $ DIRECAO                    <chr> "Vertical", "Direcional", "Vertical", "Vert…
#> $ PROFUNDIDADE_VERTICAL_M    <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ PROFUNDIDADE_SONDADOR_M    <dbl> 1062.0, 3755.0, 3341.5, 1670.0, 1380.0, 195…
#> $ PROFUNDIDADE_MEDIDA_M      <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ REFERENCIA_DE_PROFUNDIDADE <chr> "MR", "MR", "MR", "MR", "MR", "MR", "MR", "…
#> $ MESA_ROTATIVA              <dbl> 14.0, 106.0, 8.0, 304.4, 96.0, 8.0, 502.0, …
#> $ COTA_ALTIMETRICA_M         <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ LAMINA_D_AGUA_M            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ DATUM_VERTICAL             <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ UNIDADE_ESTRATIGRAFICA     <lgl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ GEOLOGIA_GRUPO_FINAL       <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ GEOLOGIA_FORMACAO_FINAL    <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ GEOLOGIA_MEMBRO_FINAL      <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ CDPE                       <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ AGP                        <chr> NA, "Existe", NA, "Existe", "Existe", NA, "…
#> $ PC                         <chr> "Existe", "Existe", "Existe", "Existe", "Ex…
#> $ PAG                        <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ PERFIS_CONVENCIONAIS       <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ DURANTE_PERFURACAO         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ PERFIS_DIGITAIS            <chr> "Existe", "Existe", "Existe", "Existe", "Ex…
#> $ PERFIS_PROCESSADOS         <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ PERFIS_ESPECIAIS           <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ AMOSTRA_LATERAL            <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ SISMICA                    <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ TABELA_TEMPO_PROFUNDIDADE  <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ DADOS_DIRECIONAIS          <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ TESTE_A_CABO               <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ TESTE_DE_FORMACAO          <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ CANHONEIO                  <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ TESTEMUNHO                 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ GEOQUIMICA                 <chr> "Existe", "Existe", "Existe", "Existe", "Ex…
#> $ SIG_SONDA                  <chr> "CC-1", "SC-110", "SC-61", "SC-53", "SM-1",…
#> $ NOM_SONDA                  <chr> NA, "SONDA CONVENCIONAL 110", "SONDA CONVEN…
#> $ ATINGIU_PRESAL             <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ DHA_ATUALIZACAO            <dttm> 2025-11-09, 2025-11-09, 2025-11-09, 2025-1…

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 2940 0.0944396
POCO_OPERADOR 0 0.0000000
ESTADO 0 0.0000000
BACIA 0 0.0000000
BLOCO 4065 0.1305772
SIG_CAMPO 4095 0.1315409
CAMPO 4095 0.1315409
TERRA_MAR 0 0.0000000
POCO_POS_ANP 0 0.0000000
TIPO 0 0.0000000
CATEGORIA 0 0.0000000
RECLASSIFICACAO 1770 0.0568565
SITUACAO 112 0.0035977
INÍCIO 0 0.0000000
TÉRMINO 1863 0.0598439
CONCLUSAO 119 0.0038226
TITULARIDADE 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 18294 0.5876458
PROFUNDIDADE_SONDADOR_M 1050 0.0337284
PROFUNDIDADE_MEDIDA_M 16789 0.5393017
REFERENCIA_DE_PROFUNDIDADE 0 0.0000000
MESA_ROTATIVA 0 0.0000000
COTA_ALTIMETRICA_M 15867 0.5096849
LAMINA_D_AGUA_M 13833 0.4443481
DATUM_VERTICAL 13349 0.4288009
UNIDADE_ESTRATIGRAFICA 31131 1.0000000
GEOLOGIA_GRUPO_FINAL 27454 0.8818862
GEOLOGIA_FORMACAO_FINAL 27164 0.8725707
GEOLOGIA_MEMBRO_FINAL 30897 0.9924834
CDPE 21350 0.6858116
AGP 24206 0.7775529
PC 22618 0.7265427
PAG 29703 0.9541293
PERFIS_CONVENCIONAIS 22003 0.7067874
DURANTE_PERFURACAO 27927 0.8970801
PERFIS_DIGITAIS 10389 0.3337188
PERFIS_PROCESSADOS 29796 0.9571167
PERFIS_ESPECIAIS 30446 0.9779962
AMOSTRA_LATERAL 30128 0.9677813
SISMICA 29429 0.9453278
TABELA_TEMPO_PROFUNDIDADE 30234 0.9711863
DADOS_DIRECIONAIS 22794 0.7321962
TESTE_A_CABO 26592 0.8541968
TESTE_DE_FORMACAO 30476 0.9789599
CANHONEIO 29747 0.9555427
TESTEMUNHO 30692 0.9858983
GEOQUIMICA 27985 0.8989432
SIG_SONDA 122 0.0039189
NOM_SONDA 4156 0.1335004
ATINGIU_PRESAL 21894 0.7032861
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: 31,131
#> Columns: 33
#> $ POCO                       <chr> "1-AA-1-RN", "1-ABV-1D-RN", "1-AB-1A-SE", "…
#> $ CADASTRO                   <dbl> 721000712200, 721000514700, 901200015200, 2…
#> $ OPERADOR                   <chr> NA, "PetroRecôncavo", NA, NA, NA, NA, NA, N…
#> $ POCO_OPERADOR              <chr> "1AA  0001  RN", "1ABV 0001D RN", "1AB  000…
#> $ ESTADO                     <chr> "RN", "RN", "SE", "BA", "PA", "SE", "SP", "…
#> $ BACIA                      <chr> "Potiguar", "Potiguar", "Sergipe", "Tucano …
#> $ BLOCO                      <chr> "Brasil", "BT-POT-9", "Brasil", "Brasil", "…
#> $ SIG_CAMPO                  <chr> NA, "PAT", NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ CAMPO                      <chr> NA, "PATATIVA", NA, NA, NA, NA, NA, NA, NA,…
#> $ TERRA_MAR                  <chr> "T", "T", "T", "T", "T", "T", "T", "T", "T"…
#> $ POCO_POS_ANP               <chr> "N", "N", "N", "N", "N", "N", "N", "N", "N"…
#> $ TIPO                       <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
#> $ CATEGORIA                  <chr> "Pioneiro", "Pioneiro", "Pioneiro", "Pionei…
#> $ RECLASSIFICACAO            <chr> "SECO SEM INDÍCIOS", "SECO SEM INDÍCIOS", "…
#> $ SITUACAO                   <chr> "CEDIDO PARA A CAPTAÇÃO DE ÁGUA", "ABANDONA…
#> $ INÍCIO                     <dttm> 1984-01-21, 1997-03-17, 1963-11-11, 1964-0…
#> $ TÉRMINO                    <dttm> 1984-01-29, 1997-05-23, 1964-06-30, 1964-0…
#> $ CONCLUSAO                  <dttm> 1984-01-29, 1997-05-23, 1964-06-30, 1964-0…
#> $ TITULARIDADE               <chr> "Público", "Público", "Público", "Público",…
#> $ LATITUDE_BASE_DD           <dbl> -4.9180856, -5.4182733, -11.0525608, -9.987…
#> $ LONGITUDE_BASE_DD          <dbl> -37.22464, -37.64420, -37.14529, -38.67656,…
#> $ DATUM_HORIZONTAL           <chr> "SIRGAS2000", "SIRGAS2000", "SIRGAS2000", "…
#> $ TIPO_DE_COORDENADA_DE_BASE <chr> "Definitiva", "Definitiva", "Definitiva", "…
#> $ DIRECAO                    <chr> "Vertical", "Direcional", "Vertical", "Vert…
#> $ PROFUNDIDADE_SONDADOR_M    <dbl> 1062.0, 3755.0, 3341.5, 1670.0, 1380.0, 195…
#> $ REFERENCIA_DE_PROFUNDIDADE <chr> "MR", "MR", "MR", "MR", "MR", "MR", "MR", "…
#> $ MESA_ROTATIVA              <dbl> 14.0, 106.0, 8.0, 304.4, 96.0, 8.0, 502.0, …
#> $ LAMINA_D_AGUA_M            <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ DATUM_VERTICAL             <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
#> $ PERFIS_DIGITAIS            <chr> "Existe", "Existe", "Existe", "Existe", "Ex…
#> $ SIG_SONDA                  <chr> "CC-1", "SC-110", "SC-61", "SC-53", "SM-1",…
#> $ NOM_SONDA                  <chr> NA, "SONDA CONVENCIONAL 110", "SONDA CONVEN…
#> $ DHA_ATUALIZACAO            <dttm> 2025-11-09, 2025-11-09, 2025-11-09, 2025-1…

Salvando os dados filtrados

write_csv(poco_filtrado, "pocos_filtrados.csv")