Skip to content

Commit

Permalink
padronizar_tipos_de_logradouro()
Browse files Browse the repository at this point in the history
  • Loading branch information
dhersz committed May 15, 2024
1 parent dfaf596 commit 8bbaece
Show file tree
Hide file tree
Showing 4 changed files with 244 additions and 183 deletions.
1 change: 1 addition & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@
^CRAN-SUBMISSION$
^codecov\.yml$
^data-raw$
tests/test-grandes_bases.R
242 changes: 64 additions & 178 deletions R/padronizar_tipos_de_logradouro.R
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ padronizar_tipos_de_logradouro <- function(tipos) {
# pontuacao
r"{\.\.+}" = ".", # remover pontos repetidos
r"{(\d+)\.(\d{3})}" = "\\1\\2", # pontos usados como separador de milhares
# r"{(\d+)\.(\d+)}" = "\\1,\\2", # pontos usados como separador de decimais (nao sei se esse vale, tem muitas poucas observacoes e ela sao meio ambiguas. no caso do cpf, por exemplo, tem so "BL 3.1 APTO 204", "KM 7.5", "2.2 BLOCO G" e "34.5KV" no primeiro milhao de observacoes)
r"{\.([^ ])}" = "\\. \\1", # garantir que haja espaco depois do ponto
r"{ (-|\.) }" = " ",
r"{\.$}" = "", # remocao de ponto final
Expand All @@ -53,14 +52,23 @@ padronizar_tipos_de_logradouro <- function(tipos) {
# valores non-sense
r"{^([^\d])\1{1,}$}" = "",
r"{^(\d)\1{3,}$}" = "", # assumindo que qualquer numero que apareca 4 ou mais vezes repetido eh um erro de digitacao
r"{^\d+$}" = "", # tipos de logradouro não podem ser números
r"{^(-)+$}" = "",
# ordenacao de logradouros - e.g. 3A RUA, 15A TRAVESSA, 1A RODOVIA, 1O BECO, etc
r"{\b\d+(A|O) ?}" = "",
# tipos de logradouro
# problema visto no cadunico 2011: muitos tipos são truncados em 3 letras.
# existem ambiguidades com CAM (CAMINHO x CAMPO), CON (CONJUNTO x
# CONDOMINIO), PAS (PASSARELA x PASSAGEM x PASSEIO), entre outros. nesses
# casos, acho melhor não "tomar um lado" e manter inalterado
r"{\bR(A|U)?\b\.?}" = "RUA",
r"{\b(ROD|RDV)\b\.?}" = "RODOVIA",
r"{\bAV(E|N|D|DA|I)?\b\.?}" = "AVENIDA",
r"{\bESTR?\b\.?}" = "ESTRADA", # EST pode ser ESTANCIA, mas são poucos casos. no cadunico 2011 ESTRADA eram 139780 e ESTANCIA 158, 0.1%
r"{\b(PCA?|PRC)\b\.?}" = "PRACA",
r"{\b(PCA?|PR(A|C))\b\.?}" = "PRACA",
r"{\bBE?CO?\b(?<!BECO)\.?}" = "BECO", # (?<!BECO) serve para remover os matches com a palavra BECO ja correta
r"{\b(T(RA?)?V|TRA)\b\.?}" = "TRAVESSA",
r"{\bP((A?R)?Q|QU?E)\b\.?}" = "PARQUE",
Expand All @@ -73,189 +81,67 @@ padronizar_tipos_de_logradouro <- function(tipos) {
r"{\bL(AR|RG|GO)\b\.?}" = "LARGO",
r"{\bAER(OP)?\b\.?}" = "AEROPORTO",
r"{\bFAZ(EN?)?\b\.?}" = "FAZENDA",
r"{\bCOND?\b\.?}" = "CONDOMINIO",
r"{\bCOND\b\.?}" = "CONDOMINIO",
r"{\bSIT\b\.?}" = "SITIO",
r"{\bRES(ID)?\b\.?}" = "RESIDENCIAL",
r"{\bQ(U(AD?)?|D(RA?)?)\b\.?}" = "QUADRA",
r"{\bCHAC?\b\.?}" = "CHACARA",
r"{\bCHAC\b\.?}" = "CHACARA", # CHA pode ser CHAPADAO
r"{\bCPO\b\.?}" = "CAMPO",
r"{\bCOL\b\.?}" = "COLONIA",
r"{\bC(ONJ|J)\b\.?}" = "CONJUNTO",
r"{\bJ(D(I?M)?|A?RD)\b\.?}" = "JARDIM",
r"{\bFAV\b\.?}" = "FAVELA",
r"{\bNUC\b\.?}" = "NUCLEO",
r"{\bVIE\b\.?}" = "VIELA",
r"{\bSET\b\.?}" = "SETOR",
r"{\bILH\b\.?}" = "ILHA",
r"{\bVER\b\.?}" = "VEREDA",
r"{\bACA\b\.?}" = "ACAMPAMENTO",
r"{\bACE\b\.?}" = "ACESSO",
r"{\bADR\b\.?}" = "ADRO",
r"{\bALT\b\.?}" = "ALTO",
r"{\bARE\b\.?}" = "AREA",
r"{\bART\b\.?}" = "ARTERIA",
r"{\bATA\b\.?}" = "ATALHO",
r"{\bBAI\b\.?}" = "BAIXA",
r"{\bBLO\b\.?}" = "BLOCO",
r"{\bBOS\b\.?}" = "BOSQUE",
r"{\b(BOU|BULEVAR)\b\.?}" = "BOULEVARD",
r"{\bBUR\b\.?}" = "BURACO",
r"{\bCAI\b\.?}" = "CAIS",
r"{\bCAL\b\.?}" = "CALCADA",
r"{\bELE\b\.?}" = "ELEVADA",
r"{\bESP\b\.?}" = "ESPLANADA",
r"{\bFEI\b\.?}" = "FEIRA",
r"{\bFER\b\.?}" = "FERROVIA",
r"{\bFON\b\.?}" = "FONTE",
r"{\bFOR\b\.?}" = "FORTE",
r"{\bGAL\b\.?}" = "GALERIA",
r"{\bGRA\b\.?}" = "GRANJA",
r"{\bMOD\b\.?}" = "MODULO",
r"{\bMON\b\.?}" = "MONTE",
r"{\bMOR\b\.?}" = "MORRO",
r"{\bPAT\b\.?}" = "PATIO",
r"{\bPOR\b\.?}" = "PORTO",
r"{\bREC\b\.?}" = "RECANTO",
r"{\bRET\b\.?}" = "RETA",
r"{\bROT\b\.?}" = "ROTULA",
r"{\bSER\b\.?}" = "SERVIDAO",
r"{\bSUB\b\.?}" = "SUBIDA",
r"{\bTER\b\.?}" = "TERMINAL",
r"{\bTRI\b\.?}" = "TRINCHEIRA",
r"{\bTUN\b\.?}" = "TUNEL",
r"{\bUNI\b\.?}" = "UNIDADE",
r"{\bVAL\b\.?}" = "VALA",
r"{\bVAR\b\.?}" = "VARIANTE",
r"{\bZIG\b\.?}" = "ZIGUE-ZAGUE",
"OUTROS" = ""
#,
# EDF é usado pra sinalizar endereços típicos do DF no CadUnico (sigla de
# Endereço do DF), não substituir por EDIFICIO
# "^COL\\b\\.?" = "COLONIA",
# "\\bCOLONIA AGRI?C?\\b\\.?" = "COLONIA AGRICOLA",
#
#
#
#
#
#
#
#
#
#
#
#
#
# # muita coisa pode ser quadra... Q A LOTE 2, Q I LOTE 45, QI, Q I, etc etc. tem que ver o que faz sentido
# r"{QU ADRA}" = "QUADRA",
# r"{\bQ(U(ADRA)?|D(RA?)?)\.?(\d)}" = "QUADRA \\4", # QDA pode ser QUADRA A. da tipo 1%~ das observacoes, pelo que vi aqui. vale a pena errar nesses 1% e transformar?
# r"{(\d+)Q(U(ADRA)?|D(RA?)?)\b\.?}" = "\\1 QUADRA",
# r"{\bQD(RA?)?\b\.?}" = "QUADRA",
# r"{\bQU\b\.? }" = "QUADRA ", # espaco no final pra evitar casos como "EDIFICIO RES M LUIZA QU" e "BLOCO 3A APARTAMENTO 201 E M QU"
# r"{\bQUADRA\b: ?}" = "QUADRA ",
# r"{\bQUADRA-(\d+)}" = "QUADRA \\1",
# r"{\bQ\.? ?(\d)}" = "QUADRA \\1",
# r"{\bQ-(\d+)}" = "QUADRA \\1",
# r"{\bQ-([A-Z])\b}" = "QUADRA \\1",
# r"{ ?-QUADRA}" = " QUADRA",
#
# r"{\b(LOTE|LTE?)\.?(\d)}" = "LOTE \\2",
# r"{\b(?<!RUA |S\/)L\.? (\d)}" = "LOTE \\1", # o \\1 ta certo mesmo, os (?...) nao contam. transforma L 5 em LOTE 5, mas evita que RUA L 5 LOTE 45 vire RUA LOTE 5 LOTE 45 e que S/L 205 vire S/LOTE 205
# r"{(\d)(LTE?|LOTE)\b\.?}" = "\\1 LOTE",
# r"{\bLTE?\b\.?}" = "LOTE",
# r"{\bLOTE\b: ?}" = "LOTE ",
# r"{\bLOTE-(\d+)}" = "LOTE \\1",
# r"{\b(?<!(TV|TRAVESSA|QUADRA) )L-(\d+)}" = "LOTE \\2", # "L-21-NOVO HORIZONTE" ? "L-36" ?
# r"{ ?-LOTE}" = " LOTE",
# r"{\b(LOTES|LTS)\.?(\d)}" = "LOTES \\2",
# r"{(\d)(LTS|LOTES)\b\.?}" = "\\1 LOTES",
# r"{\bLTS\b\.?}" = "LOTES",
# # r"{\bLOT\.? ?(\d)}" = "LOTE \\1", # LOT seguido de numero tende a ser LOTE, mas seguido de palavra tende a ser LOTEAMENTO? tem excecoes e.g. "LOT 28 AGOSTO", "LOT 1 DE MAIO", "LOT 2 IRMAS", "LOT 3 COQUEIROS"
# r"{\bLOT\.? ([A-Z]{2,})}" = "LOTEAMENTO \\1",
#
# r"{\b(CASA|CS)\.?(\d)}" = "CASA \\2", # CSA?
# r"{(\d)(CASA|CS)\b\.?}" = "\\1 CASA",
# r"{\bCS\b\.?}" = "CASA",
# r"{\bCASA\b: ?}" = "CASA ",
# r"{\bCASA-(\d+)}" = "CASA \\1",
# #r"{[^^]\b(?<!(APARTAMENTO|CONJUNTO|BLOCO|QUADRA) )C-(\d+)}" = "CASA \\1", # ESSE TEM MUITA VARIACAO, COMPLICADO #### Q-10 C-03 = Q-10 CASA 03, mas APARTAMENTO C-03 nao eh mexido, nem soh C-03 (pode ser soh C-03 mesmo)
# r"{ ?-CASA}" = " CASA",
#
# r"{\b(C(ON)?JT?|CONJUNTO)\.?(\d)}" = "CONJUNTO \\3",
# r"{(\d)(C(ON)?JT?|CONJUNTO)\b\.?}" = "\\1 CONJUNTO",
# r"{\bC(ON)?JT?\b\.?}" = "CONJUNTO",
# r"{\bCONJUNTO\b: ?}" = "CONJUNTO ",
# r"{\bCONJUNTO-(\d)}" = "CONJUNTO \\1",
# r"{ ?-CONJUNTO}" = " CONJUNTO",
#
# r"{\b(CONDOMINIO|C(O?N)?D)\.?(\d)}" = "CONDOMINIO \\3", # "LOTE 4 RUA 06 COND263"? "COND3 T7 APARTAMENTO 13"? "BLOCO 07 APARTAMENTO 204 CD2"?
# r"{(\d)(CONDOMINIO|C(O?N)?D)\b\.?}" = "\\1 CONDOMINIO",
# r"{\bC(O?N)?D\b\.?}" = "CONDOMINIO",
# r"{\bCONDOMINIO\b: ?}" = "CONDOMINIO ",
# r"{\bCONDOMINIO-(\d)}" = "CONDOMINIO \\1",
# r"{ ?-CONDOMINIO}" = " CONDOMINIO",
#
# r"{\bAND(AR)?\.?(\d)}" = "ANDAR \\2",
# r"{(\dO?)AND(AR)?\b\.?}" = "\\1 ANDAR",
# r"{\bAND\b\.?}" = "ANDAR",
# r"{\bANDAR\b: ?}" = "ANDAR ",
# r"{\bANDAR-(\d+)}" = "ANDAR \\1",
# r"{ ?-ANDAR}" = " ANDAR",
#
# r"{\bCOB(ERTURA)?\.?(\d)}" = "COBERTURA \\2",
# r"{(\d)COB(ERTURA)?\b\.?}" = "\\1 COBERTURA",
# r"{\bCOB\b\.?}" = "COBERTURA",
# r"{\bCOBERTURA\b: ?}" = "COBERTURA ",
# r"{\bCOBERTURA-(\d+)}" = "COBERTURA \\1",
# r"{ ?-COBERTURA}" = " COBERTURA",
#
# r"{\b(FDS|FUNDOS)\.?(\d)}" = "FUNDOS \\2",
# r"{(\d)(FDS|FUNDOS)\b\.?}" = "\\1 FUNDOS",
# r"{\bFDS\b\.?}" = "FUNDOS",
# r"{-FUNDOS}" = " FUNDOS",
#
# # tipos de logradouro
#
# r"{\bAV\b\.?}" = "AVENIDA", # "APARTAMENTO 401 EDIFICIO RES 5O AV"? "GUARABU AV"? "TRAVESSA AV JOAO XXIII"?
# r"{\bAVENIDA\b(:|-) ?}" = "AVENIDA ",
#
# r"{\bROD\b\.?}" = "RODOVIA", # "FAZENDA FIRMESA ROD CRIO"
# r"{\bRODOVIA (BR|RO|AC|AM|RR|PA|AP|TO|MA|PI|CE|RN|PB|PE|AL|SE|BA|MG|ES|RJ|SP|PR|SC|RS|MS|MT|GO|DF) ?(\d{3})\b}" = "\\1-\\2",
# r"{\b(BR|RO|AC|AM|RR|PA|AP|TO|MA|PI|CE|RN|PB|PE|AL|SE|BA|MG|ES|RJ|SP|PR|SC|RS|MS|MT|GO|DF) ?(\d{3}) KM}" = "\\1-\\2 KM",
# r"{^(BR|RO|AC|AM|RR|PA|AP|TO|MA|PI|CE|RN|PB|PE|AL|SE|BA|MG|ES|RJ|SP|PR|SC|RS|MS|MT|GO|DF) ?(\d{3})$}" = "\\1-\\2",
#
# r"{\bESTR\b\.?}" = "ESTRADA",
#
# # abreviacoes
# r"{\bS\.? ?N\b\.?}" = "S/N",
# r"{\bPRO?X\b\.?}" = "PROXIMO",
# # r"{\bESQ\b\.?}" = "ESQUINA" # tem uns casos que ESQ = ESQUERDA, não ESQUINA - e.g. "LD ESQ", "A ESQ ENT XIQUITIM", "ULTIMA CASA LADO ESQ"
# r"{\bLOTEAM?\b\.?}" = "LOTEAMENTO",
# r"{\bCX\.? ?P(T|(OST(AL)?))?\b\.?}" = "CAIXA POSTAL",
# r"{\bC\.? ?P(T|(OST(AL)?))?\b\.?}" = "CAIXA POSTAL", # separado pq nao tenho certeza. varios parecem ser caixa postal mesmo, mas tem bastante coisas como "A C CP 113". o que é esse A C/AC/etc que se repete antes?
#
# r"{\bEDI?F?\b\.?}" = "EDIFICIO",
# r"{\bN((O|\u00BA)?\.|\. (O|\u00BA)) (\d)}" = "NUMERO \\4",
# r"{\b(PX|PROXI)\b\.?}" = "PROXIMO", # vale tentar ajustar a preposição? tem varios "PX AO FINAL DA LINHA" mas tb tem "PX VIADUTO" e "PX A CX DAGUA"
# r"{\bLJ\b\.?}" = "LOJA",
# r"{\bLJS\b\.?}" = "LOJAS",
# r"{\bSLS\b\.?}" = "SALAS",
# r"{\bFAZ(EN?)?\b\.?}" = "FAZENDA",
# r"{\bPCA\b\.?}" = "PRACA",
# r"{\bP((A?R)?Q|QU?E)\b\.?}" = "PARQUE",
# r"{\bL(RG|GO)\b\.?}" = "LARGO",
# r"{\bSIT\b\.?}" = "SITIO",
# r"{\bCHAC\b\.?}" = "CHACARA",
# r"{\bT(RA?)?V\b\.?}" = "TRAVESSA", # "3º TRV"? "TRV WE 40"? "TV. WE 49"? "TV WE 07"? o que é esse WE?
# r"{\bJ(D(I?M)?|A?RD)\b\.?}" = "JARDIM", # tendo a achar que JD tb eh jardim, mas tem uns mais estranhos e.g. "JD WALDES". sera que poderia ser abreviacao de um nome tb?
# r"{\bVL\b\.?}" = "VILA",
# r"{\bNUC\b\.?}" = "NUCLEO",
# r"{\bNUCLEO H(AB)?\b\.?}" = "NUCLEO HABITACIONAL",
# r"{\bNUCLEO COL\b\.?}" = "NUCLEO COLONIAL",
# r"{\b(NUCLEO RES|(?<!S/)N\.? RES(IDENCIAL)?)\b\.?}" = "NUCLEO RESIDENCIAL",
# r"{\b(NUCLEO RUR|(?<!S/)N\.? RURAL)\b\.?}" = "NUCLEO RURAL", # evita coisas como "S/N RURAL"
# r"{\bASSENT\b\.?}" = "ASSENTAMENTO",
#
# r"{\b(N(OS|SS?A?)?\.? S(RA|ENHORA)|(NOSSA|NSA\.?) (S(RA?)?|SEN(H(OR)?)?))\b\.?}" = "NOSSA SENHORA",
# r"{\b(N(O?S)?\.? S(R|EN(H(OR)?)?)?\.?( DE?)?|NOSSA SENHORA|NS) (FAT.*|LO?UR.*|SANTANA|GUADALUPE|NAZ.*|COP*)\b}" = "NOSSA SENHORA DE \\7",
# r"{\b(N(O?S)?\.? S(R|EN(H(OR)?)?)?\.?( D(A|E)?)?|NOSSA SENHORA|NS) (GRACA|VITORIA|PENHA|CONCEICAO|PAZ|GUIA|AJUDA|CANDELARIA|PURIFICACAO|SAUDE|PIEDADE|ABADIA|GLORIA|SALETE|APRESENTACAO)\b}" = "NOSSA SENHORA DA \\8",
# r"{\b(N(O?S)?\.? S(R|EN(H(OR)?)?)?\.?( D(A|E)?)?|NOSSA SENHORA D(A|E)|NS) (APA.*|AUX.*|MEDIANEIRA|CONSOLADORA)\b}" = "NOSSA SENHORA \\9",
# r"{\b(N(O?S)?\.? S(R|EN(H(OR)?)?)?\.?( D(OS?)?)?|NOSSA SENHORA|NS) (NAVEGANTES)\b}" = "NOSSA SENHORA DOS \\8",
# r"{\b(N(O?S)?\.? S(R|EN(H(OR)?)?)?\.?( DO?)?|NOSSA SENHORA|NS) (CARMO|LIVRAMENTO|RETIRO|SION|ROSARIO|PILAR|ROCIO|CAMINHO|DESTERRO|BOM CONSELHO|AMPARO|PERP.*|P.* S.*)\b}" = "NOSSA SENHORA DO \\7",
# r"{\b(N(O?S)?\.? S(R|EN(H(OR)?)?)?\.?( D(AS?)?)?|NOSSA SENHORA|NS) (GRACAS|DORES)\b}" = "NOSSA SENHORA DAS \\8",
# r"{\b(S(R|ENH?)\.?( D(OS?)?)?|SENHOR( D(OS)?)?) (BON\w*)\b}" = "SENHOR DO BONFIM",
# r"{\b(S(R|ENH?)\.?( D(OS?)?)?|SENHOR( D(OS?)?)?) (BOM ?F\w*)\b}" = "SENHOR DO BONFIM",
# r"{\b(S(R|ENH?)\.?( D(OS?)?)?|SENHOR) (PASS\w*|MONT\w*)\b}" = "SENHOR DOS \\5",
# r"{\bS(R|ENH?)\.? (BOM J\w*)\b}" = "SENHOR BOM JESUS",
# r"{\b(N(O?S)?\.? S(R|EN(H(OR)?)?)?\.?( D(OS?)?)?|NOSSO SENHOR|NS) (BONF\w*|BOM ?F\w*)\b}" = "NOSSO SENHOR DO BONFIM",
# r"{\b(N(O?S)?\.? S(R|EN(H(OR)?)?)?\.?( D(OS?)?)?|NOSSO SENHOR|NS) (PASS\w*|MONT\w*)\b}" = "NOSSO SENHOR DOS \\8",
#
# r"{\bSTA\b\.?}" = "SANTA",
# r"{\bSTO\b\.?}" = "SANTO",
# r"{\bSRA\b\.?}" = "SENHORA",
# r"{\bSR\b\.?}" = "SENHOR", # "Q SR LOTE 1"?
#
# r"{\bS\.? (JOSE|JOAO)\b}" = "SAO \\1",
#
# r"{\bPROF\b\.?}" = "PROFESSOR",
# # r"{\bDR\b\.?}" = "DOUTOR", # tem varios DR que nao parecem ser DOUTOR... e.g. "DR 16", "AREA DR", "1O DR DER DF"
# r"{\bMONS\b\.?}" = "MONSENHOR",
# r"{\bPRES(ID)?\b\.?}" = "PRESIDENTE",
# r"{\bGOV\b\.?}" = "GOVERNADOR",
# r"{\bVISC\b\.?}" = "VISCONDE",
#
# r"{\b(\d+)\. (O|\u00BA)\b}" = "\\1O", # o que fazer com "6O ANDAR"? transformar em "6 ANDAR"? de forma geral, o que fazer com numeros ordinais
# r"{\b(\d+)(O|\u00BA)\b\.}" = "\\1O",
#
# # datas
#
# r"{\b(\d+) DE? JAN(?!EIRO)\b}" = "\\1 DE JANEIRO",
# r"{\b(\d+) DE? FEV(?!EREIRO)\b}" = "\\1 DE FEVEREIRO",
# r"{\b(\d+) DE? MAR(?!CO)\b}" = "\\1 DE MARCO",
# r"{\b(\d+) DE? ABR(?!IL)\b}" = "\\1 DE ABRIL",
# r"{\b(\d+) DE? MAI(?!O)\b}" = "\\1 DE MAIO",
# r"{\b(\d+) DE? JUN(?!HO)\b}" = "\\1 DE JUNHO",
# r"{\b(\d+) DE? JUL(?!HO)\b}" = "\\1 DE JULHO",
# r"{\b(\d+) DE? AGO(?!STO)\b}" = "\\1 DE AGOSTO",
# r"{\b(\d+) DE? SET(?!EMBRO)\b}" = "\\1 DE SETEMBRO",
# r"{\b(\d+) DE? OUT(?!UBRO)\b}" = "\\1 DE OUTUBRO",
# r"{\b(\d+) DE? NOV(?!EMBRO)\b}" = "\\1 DE NOVEMBRO",
# r"{\b(\d+) DE? DEZ(?!EMBRO)\b}" = "\\1 DE DEZEMBRO"
# * pelo menos é o que diz o manual do CadUnico, mas isso não aparece
# nenhuma vez, pelo visto
)
)
Expand Down
50 changes: 50 additions & 0 deletions tests/test-grandes_bases.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# arquivo auxiliar para facilitar o teste manual com grandes bases de enderecos

# cad unico

arquivo <- file.path(
Sys.getenv("RESTRICTED_DATA_PATH"),
paste0("CADASTRO_UNICO/parquet/cad_familia_122011.parquet")
)
colunas_a_manter <- c(
"co_familiar_fam", # identificador
"co_uf", # estado
"cd_ibge_cadastro", # municipio
"no_localidade_fam", # bairro, povoado, vila, etc
"no_tip_logradouro_fam", # tipo de logradouro
"no_tit_logradouro_fam", # titulo (e.g. general, papa, santa, etc)
"no_logradouro_fam", # logradouro
"nu_logradouro_fam", # numero
"nu_cep_logradouro_fam" # cep
)

original <- arrow::open_dataset(arquivo)
original <- dplyr::select(original, dplyr::all_of(colunas_a_manter))
original <- data.table::setDT(dplyr::collect(original))
tipos <- original$no_tip_logradouro_fam
table(tipos)

# cpf

path <- file.path(
Sys.getenv("RESTRICTED_DATA_PATH"),
"B_CADASTRO/CPF/20230816_cpf.csv"
)
colunas_a_manter <- c(
"cpf", # identificador
"uf_dom", # estado
"codmun_dom", # municipio
"cep",
"bairro",
"tipoLogradouro",
"logradouro",
"nroLogradouro"
)
original <- data.table::fread(
path,
select = list(character = colunas_a_manter),
na.strings = "",
nrows = 2500000
)
tipos <- original$tipoLogradouro
table(tipos)
Loading

0 comments on commit 8bbaece

Please sign in to comment.