Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dados-rastreador
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages
Packages
Container Registry
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Camex Público
dados-rastreador
Commits
a9f6235f
Commit
a9f6235f
authored
Mar 20, 2026
by
Miguel Guerrero
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adiciona validacao para correlacao ncm
parent
d5df4011
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
153 additions
and
0 deletions
+153
-0
scripts/validacao.R
scripts/validacao.R
+153
-0
No files found.
scripts/validacao.R
0 → 100644
View file @
a9f6235f
# Esboço validação
library
(
dplyr
)
library
(
readxl
)
library
(
stringr
)
library
(
purrr
)
library
(
arrow
)
# carrega caminhos para dados
# path_ncm <- file.path(
# Sys.getenv("general"),
# "Bases",
# "correlacoes",
# "mercosul",
# "output",
# "correlacao_completa_ncm.xlsx"
# )
path_ncm
<-
"correlacao_completa_ncm.xlsx"
# path_ncm_detalhada <- file.path(
# Sys.getenv("general"),
# "Bases",
# "correlacoes",
# "mercosul",
# "output",
# "correlacao_completa_ncm_detalhada.xlsx"
# )
path_ncm_detalhada
<-
"correlacao_completa_ncm_detalhada.xlsx"
correlacao_ncm_detalhada
<-
read_xlsx
(
path_ncm_detalhada
,
guess_max
=
1e6
)
# funcao para obter linhas com mudancas de codigo em cada revisao NCM
filtra_mudancas
<-
function
(
x
,
padrao
)
{
x
|>
select
(
matches
(
padrao
))
|>
filter
(
# seleciona as linhas que tem algum valor diferente de NA com exceção
# de dados na primeira coluna
if_any
(
-1
,
~
!
is.na
(
.
))
)
|>
# cria uma coluna preenchendo-a com a primeira informação não NA da
# direita para a esquerda
mutate
(
!!
padrao
:=
do.call
(
coalesce
,
rev
(
as.list
(
across
(
-1
)))))
|>
select
(
ncm_original
=
1
,
last_col
()
)
|>
distinct
()
}
# cria lista de nomes para usar como input em filtra_mudancas
nomes_para_funcao
<-
names
(
correlacao_ncm_detalhada
)
|>
str_extract
(
"NCM_\\d{4}"
)
|>
unique
()
# obtem lista com as ncms originais das revisoes
ncms_originais
<-
nomes_para_funcao
|>
map
(
~
filtra_mudancas
(
correlacao_ncm_detalhada
,
padrao
=
.x
))
names
(
ncms_originais
)
<-
nomes_para_funcao
|>
str_replace
(
"_"
,
" "
)
# tamanho da lista de ncms originais
tamanho_lista
<-
length
(
ncms_originais
)
# ultimo elemento da lista de ncms originais
ultima_revisao
<-
ncms_originais
[[
tamanho_lista
]]
# ultimo arquivo do projeto ncms_originais
dados_gerados_ncms_originais
<-
readRDS
(
"dados_gerados/ncms_originais.rds"
)
dados_gerados_ncms_originais
<-
dados_gerados_ncms_originais
[[
tamanho_lista
]]
# compara coluna ncm original de agora com anterior
# indica que codigos que não estavam na revisão, original apareceram agora
setdiff
(
ultima_revisao
$
ncm_original
,
dados_gerados_ncms_originais
$
ncm_original
)
# obter nome da segunda coluna da ultima revisao
nome_segunda_coluna
<-
ultima_revisao
|>
select
(
-
ncm_original
)
|>
names
()
# compara coluna de mudanças dentro da revisão. Indica códigos que
# apareceram agora em relação ao ultimo arquivo
setdiff
(
ultima_revisao
[[
nome_segunda_coluna
]],
dados_gerados_ncms_originais
[[
nome_segunda_coluna
]]
)
# carrega dados da tec
tec
<-
read_xlsx
(
"tec_oficial.xlsx"
,
guess_max
=
1e6
)
# observa mudanças nos códigos ncm de um arquivo anterior
# e verifica se tem alguma ncm que não está mais na tec vigente.
dados_gerados_ncms_originais
|>
rename
(
ncm
=
all_of
(
nome_segunda_coluna
))
|>
mutate
(
ncm
=
str_remove_all
(
ncm
,
"\\."
))
|>
left_join
(
tec
,
by
=
"ncm"
)
|>
distinct
()
|>
filter
(
is.na
(
descricao_tec
))
|>
pull
(
ncm
)
#####################################
# compara codigos ncm da tabela de correlacao ncm de agora
# e verifica se todos estão presentes na tec vigente.
correlacao_completa_ncm_mercosul
<-
read_xlsx
(
path_ncm
,
guess_max
=
1e6
)
# agora
correlacao_completa
<-
correlacao_completa_ncm_mercosul
|>
distinct
()
|>
rename_with
(
~
str_to_upper
(
.x
))
|>
tidyr
::
drop_na
()
correlacao_ncm
<-
correlacao_completa
|>
rename
(
ncm
=
all_of
(
nome_segunda_coluna
))
|>
mutate
(
ncm
=
str_remove_all
(
ncm
,
"\\."
))
correlacao_ncm
|>
select
(
ncm
)
|>
distinct
()
tec
|>
filter
(
ncm
%in%
correlacao_ncm
$
NCM_2022
)
# compara codigos ncm da tabela correlação ncm antiga e
# verifica se todos estão presentes na tec vigente.
correlacao_ncm_antes
<-
read_parquet
(
"dados_gerados/dataset_ncm.parquet"
)
# antes
correlacao_ncm_antes
<-
correlacao_ncm_antes
|>
rename
(
ncm
=
all_of
(
nome_segunda_coluna
))
|>
mutate
(
ncm
=
str_remove_all
(
ncm
,
"\\."
))
tec
|>
filter
(
ncm
%in%
correlacao_ncm_antes
$
ncm
)
# verifica codigos que entraram na tabela correlacao ncm
setdiff
(
correlacao_ncm
$
ncm
,
correlacao_ncm_antes
$
ncm
)
# compara com codigos ncms originais antes e depois
setdiff
(
ultima_revisao
[[
nome_segunda_coluna
]],
dados_gerados_ncms_originais
[[
nome_segunda_coluna
]]
)
# codigos que saíram da tabela de correlacao
setdiff
(
correlacao_ncm_antes
$
ncm
,
correlacao_ncm
$
ncm
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment