Skip to contents

Recebe nomes de bairro escritos à mão ou vindos de outros sistemas (por exemplo, de um TabNet ou do campo "bairro" de uma declaração) e procura, DENTRO de cada município, o bairro correspondente: primeiro o nome idêntico (ignorando acentos, abreviações e preposições), depois o nome sem a numeração final ("Santa Rosa II" -> "Santa Rosa"), depois um nome que contém o outro em palavras inteiras ("Complexo da Maré" -> "Maré") e, por fim, o nome mais parecido (distância de edição de até 15 tamanho).

Usage

ligar_bairros(
  nome,
  codmun,
  uf,
  unidade = c("bairro", "distrito"),
  distancia_max = 0.15
)

Arguments

nome

Vetor de nomes de bairro.

codmun

Vetor (do mesmo tamanho, ou de tamanho 1) com o código do município de cada nome (6 ou 7 dígitos).

uf

Sigla da UF.

unidade

`"bairro"` ou `"distrito"`.

distancia_max

Distância de edição máxima, relativa ao tamanho do nome, para a ligação aproximada.

Value

Um `data.frame` com uma linha por nome: `nome`, `codmun`, `ligacao` (`"exata"`, `"sem numeração"`, `"parcial"`, `"aproximada"`, `"não encontrado"` ou `"ignorado"`), `id_unidade`, `nome_ibge`, `fonte_unidade`, `cd_ibge`, `lat`, `lon` e `populacao` (só em unidades oficiais do IBGE).

Details

Os bairros candidatos são os bairros oficiais do IBGE e, nos municípios sem bairros oficiais, as localidades do CNEFE (ver [cep_bairro()]). Com `unidade = "distrito"`, são os distritos do IBGE dos municípios em `codmun` (ver [distritos_censo()]).

References

Levenshtein VI. Binary codes capable of correcting deletions, insertions, and reversals. Soviet Physics Doklady 1966; 10:707-10. (Distância de edição, calculada com [utils::adist()].)

Christen P. Data matching: concepts and techniques for record linkage, entity resolution, and duplicate detection. Berlin: Springer; 2012. doi:10.1007/978-3-642-31164-2 .

Camargo Jr. KR, Coeli CM. Reclink: aplicativo para o relacionamento de bases de dados, implementando o método probabilistic record linkage. Cadernos de Saúde Pública 2000; 16(2):439-47. doi:10.1590/s0102-311x2000000200014 .

Examples

if (FALSE) { # interactive()
ligar_bairros(c("Jd. América", "TIJUCA", "Ignorado"), "330455", "RJ")
}