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
303316ff
Commit
303316ff
authored
Mar 23, 2026
by
Miguel Guerrero
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
atualiza caminhos de arquivos para leitura de dados e melhora a legibilidade do código
parent
a9f6235f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
80 additions
and
67 deletions
+80
-67
scripts/validacao.R
scripts/validacao.R
+80
-67
No files found.
scripts/validacao.R
View file @
303316ff
...
...
@@ -8,56 +8,57 @@ library(arrow)
# carrega caminhos para dados
#
path_ncm <- file.path(
# Sys.getenv("general"),
# "Bases"
,
# "correlaco
es",
# "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"
#
caminho correlacao normal
path_ncm
<-
file.path
(
Sys.getenv
(
"general"
)
,
"Bas
es"
,
"correlacoes
"
,
"mercosul
"
,
"output"
,
"correlacao_completa_ncm.xlsx"
)
correlacao_completa_ncm_mercosul
<-
read_xlsx
(
path_ncm
,
guess_max
=
1e6
)
# agora
#
caminho correlacao expandida
path_ncm_detalhada
<-
file.path
(
Sys.getenv
(
"general"
)
,
"Bases
"
,
"correlacoes
"
,
"mercosul"
,
"output"
,
"correlacao_completa_ncm_detalhada.xlsx"
)
# Leitura de correlacao expandida
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
))
|>
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
)))))
|>
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}"
)
|>
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
|>
ncms_originais
<-
nomes_para_funcao
|>
map
(
~
filtra_mudancas
(
correlacao_ncm_detalhada
,
padrao
=
.x
))
names
(
ncms_originais
)
<-
nomes_para_funcao
|>
...
...
@@ -75,59 +76,68 @@ 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
# indica que codigos que não estavam na revisão original apareceram agora. Isso é
# importante pois alguns códigos podem ter sido alterados agora ou podem ter sido esquecidos
# e não inseridos anteriorermente
setdiff
(
ultima_revisao
$
ncm_original
,
dados_gerados_ncms_originais
$
ncm_original
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
()
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
# apareceram agora em relação ao ultimo arquivo. Aqui vale a pena conferir se
# todos os códigos que aparececem foram de fato criados. Vale a pena conferir se todos os
# códigos criados (olhar nas resoluções) aparecem dentros os códigos seguintes.
setdiff
(
ultima_revisao
[[
nome_segunda_coluna
]],
dados_gerados_ncms_originais
[[
nome_segunda_coluna
]]
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
)
tec
<-
read_xlsx
(
Sys.getenv
(
"tec"
)
,
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
)
# Se um código aparecer esse código deve ter sido alterado. Conferir.
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
# 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
))
|>
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
<-
correlacao_completa
|>
rename
(
ncm
=
all_of
(
nome_segunda_coluna
))
|>
mutate
(
ncm
=
str_remove_all
(
ncm
,
"\\."
))
correlacao_ncm
|>
select
(
ncm
)
|>
distinct
()
# contagem de códigos únicos no arquivo com a última revisão
correlacao_ncm
|>
select
(
ncm
)
|>
distinct
()
# contagem linhas tec
nrow
(
tec
)
tec
|>
filter
(
ncm
%in%
correlacao_ncm
$
NCM_2022
)
# verifica se numero de linhas é igual ao número de linhas da tec
tec
|>
filter
(
ncm
%in%
correlacao_ncm
[[
"ncm"
]]
|>
unique
())
|>
nrow
()
# compara codigos ncm da tabela correlação ncm antiga e
...
...
@@ -135,18 +145,21 @@ tec |>
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
,
"\\."
))
rename
(
ncm
=
all_of
(
nome_segunda_coluna
))
|>
mutate
(
ncm
=
str_remove_all
(
ncm
,
"\\."
))
tec
|>
filter
(
ncm
%in%
correlacao_ncm_antes
$
ncm
)
# um número menor de linhas indica que alguns códigos saíram da tabela de correlação e não estão mais presentes na tec vigente.
tec
|>
filter
(
ncm
%in%
unique
(
correlacao_ncm_antes
$
ncm
))
|>
nrow
()
# verifica codigos que entraram na tabela correlacao ncm
setdiff
(
correlacao_ncm
$
ncm
,
correlacao_ncm_antes
$
ncm
)
# compara com codigos ncms originais antes e depois
# compara com codigos ncms originais antes e depois. Os códigos da linha acima devem
# bater com a linha abaixo (sem pontos)
setdiff
(
ultima_revisao
[[
nome_segunda_coluna
]],
dados_gerados_ncms_originais
[[
nome_segunda_coluna
]]
ultima_revisao
[[
nome_segunda_coluna
]],
dados_gerados_ncms_originais
[[
nome_segunda_coluna
]]
)
# codigos que saíram da tabela de correlacao
...
...
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