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
9b17ef90
Commit
9b17ef90
authored
Dec 17, 2025
by
Miguel Guerrero
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add arquivo atualizacao_manual
parent
f54fac98
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
224 additions
and
0 deletions
+224
-0
scripts/atualizacao_manual.R
scripts/atualizacao_manual.R
+224
-0
No files found.
scripts/atualizacao_manual.R
0 → 100644
View file @
9b17ef90
# Script para identificar quando a correlação NCM-Naladi deve ser feita
# manualmente.
# No caso em que uma mesma NCM está relacionada com mais de um código NALADI,
# isto é, quando tem um fechamento Naladi para NCM de N para 1 e, quando essa
# mesma NCM tem um desdobramento de 1 para N. É necessário fazer a correlação
# manualmente
# OBS. Rodar este script antes de gera_correlacoes.R
# OBS2. Rodar script linha a linha e analisar
library
(
tidyverse
)
library
(
readxl
)
# ver ncms criadas
inclusao
<-
read_xlsx
(
file.path
(
Sys.getenv
(
"general"
),
"Bases"
,
"correlacoes"
,
"mercosul"
,
"input"
,
"alteracao_manual"
,
"inclusao.xlsx"
))
# carrega ncm_naladi manual
path_naladi_ncm_manual
<-
file.path
(
Sys.getenv
(
"general"
),
"Bases"
,
"correlacoes"
,
"aladi"
,
"naladi_ncm"
,
"correlacao_ncm_naladi_manual.xlsx"
)
naladi_ncm_manual
<-
read_xlsx
(
path_naladi_ncm_manual
)
%>%
mutate
(
across
(
everything
(),
~
str_remove_all
(
.x
,
"\\."
)
)
)
%>%
rename_with
(
~
paste0
(
"naladi"
),
contains
(
"naladi"
)
)
%>%
rename_with
(
~
paste0
(
"ncm"
),
contains
(
"ncm"
)
)
# ver dados resolucoes gecex
inclusao
%>%
count
(
res
)
# filtrar última resolução
ultima_res
<-
inclusao
%>%
filter
(
res
==
812
)
# obter ncms antigas que se desdobraram
ncms_antigas_desdobramento
<-
ultima_res
%>%
count
(
ncm_antiga
)
%>%
filter
(
n
>
1
)
%>%
pull
(
ncm_antiga
)
# obs. somente as que se desdobraram é que podem ter problemas de classificação
# entre naladi e ncm. O problema surge quando 2 ou mais naladi se relacionam com um
# único código ncm antigo que se desdobra em vários novos.
# se houver naladis diferentes que fecham em um código ncm, precisa fazer
# correlação manual
# conjunto de ncms que precisam ser definidas manualmente na correlação
verifica_manual
<-
naladi_ncm_manual
%>%
filter
(
ncm
%in%
ncms_antigas_desdobramento
)
%>%
count
(
ncm
)
%>%
filter
(
n
>
1
)
%>%
pull
(
ncm
)
if
(
!
is_empty
(
verifica_manual
))
{
message
(
"Elaborar correlação manualmente!!!\n"
)
message
(
"Olhar descrições NALADI e NCM (imprensa nacional se ainda não foi publicado) e alterar diretamente no arquivo:\n"
)
message
(
path_naladi_ncm_manual
)
naladi_ncm_manual
%>%
filter
(
ncm
%in%
verifica_manual
)
%>%
# join para obter ncms novas
left_join
(
ultima_res
,
by
=
c
(
"ncm"
=
"ncm_antiga"
),
relationship
=
"many-to-many"
)
%>%
select
(
-
ncm
,
-
res
)
%>%
print
()
stop
(
"Apos alterar no arquivo excel rodar script de novo para atualizar dados"
)
}
# identificar e remover o desdobramento que não existiu.
# exemplo:
# naladi ncm_nova
# 29159010 29159070 # o código naladi está em outros (final 90) e não no final 70. Descartar
# 29159010 29159090 # essa correlação ja existe, esta ok
# 29159090 29159070 # aqui vemos que esse codigo surgiu do outro (final 90)
# 29159090 29159090 # essa correlação já existia
# isto é, eliminar naladi 29159010 / ncm_nova 29159070 pois correlação não procede
temp
<-
ultima_res
%>%
filter
(
ncm_antiga
%in%
ncms_antigas_desdobramento
)
%>%
distinct
()
%>%
# obter códigos naladi correspondentes para ncms novas
left_join
(
naladi_ncm_manual
,
by
=
c
(
"ncm_antiga"
=
"ncm"
),
relationship
=
'many-to-many'
)
%>%
# eliminar correlações inexistentes, se houver
# caso não haja, comentar linha de baixo
filter
(
!
(
ncm_nova
==
"29159070"
&
naladi
==
"29159010"
))
ncms_mantidas
<-
temp
%>%
filter
(
ncm_antiga
==
ncm_nova
)
%>%
pull
(
ncm_antiga
)
%>%
unique
()
# selecao de ncms para remover, manter apenas as que foram mantidas entre
# antiga e nova
ncms_para_remover
<-
temp
%>%
filter
(
!
(
ncm_antiga
%in%
ncms_mantidas
))
%>%
pull
(
ncm_antiga
)
%>%
unique
()
# obtem correlacao naladi com ncms novas desdobradas
atualizacao_ncm_naladi
<-
temp
%>%
filter
(
!
is.na
(
naladi
))
%>%
select
(
naladi
,
ncm_nova
)
%>%
distinct
()
%>%
rename_with
(
~
paste0
(
"ncm"
),
contains
(
"ncm"
)
)
# corrige codigo ncm sem correlacao naladi
atualizacao_ncm_naladi_na
<-
temp
%>%
filter
(
is.na
(
naladi
))
%>%
select
(
-
naladi
)
%>%
left_join
(
naladi_ncm_manual
,
by
=
c
(
"ncm_antiga"
=
"ncm"
))
%>%
select
(
naladi
,
ncm_nova
)
%>%
rename_with
(
~
paste0
(
"ncm"
),
contains
(
"ncm"
)
)
# testa se há dados vazios em naladi
teste
<-
atualizacao_ncm_naladi_na
%>%
filter
(
is.na
(
naladi
))
if
(
nrow
(
teste
)
>
0
)
{
cat
(
"Veja Naladi sem correspondência"
)
print
(
teste
)
stop
(
"Naladi sem correspondência para nova NCM\n"
)
}
atualizacao_final
<-
bind_rows
(
atualizacao_ncm_naladi
,
atualizacao_ncm_naladi_na
,
naladi_ncm_manual
)
%>%
arrange
(
naladi
)
%>%
distinct
()
%>%
# remove ncms que deixaram de existir na correlação
filter
(
!
(
ncm
%in%
ncms_para_remover
))
%>%
mutate
(
across
(
everything
(),
~
paste0
(
str_sub
(
.x
,
1
,
4
),
"."
,
str_sub
(
.x
,
5
,
6
),
"."
,
str_sub
(
.x
,
7
,
8
)
)
)
)
# abre dados só para obter nomes das colunas originais
dados_naladi_ncm_manual
<-
read_xlsx
(
path_naladi_ncm_manual
)
nomes
<-
names
(
dados_naladi_ncm_manual
)
novo_naladi
<-
nomes
[
str_detect
(
nomes
,
regex
(
"^NALADI(_|$)"
,
ignore_case
=
TRUE
))][
1
]
novo_ncm
<-
nomes
[
str_detect
(
nomes
,
regex
(
"^NCM(_|$)"
,
ignore_case
=
TRUE
))][
1
]
# coloca nomes das colunas originais
atualizacao_final
<-
atualizacao_final
%>%
rename
(
!!
novo_naladi
:=
naladi
,
!!
novo_ncm
:=
ncm
)
# salva atualização de correlação naladi ncm
writexl
::
write_xlsx
(
atualizacao_final
,
# para sobreescrever arquivo original
path_naladi_ncm_manual
)
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