-
Notifications
You must be signed in to change notification settings - Fork 0
/
iCep4.R
83 lines (73 loc) · 3.2 KB
/
iCep4.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
library(data.table)
library("tidyr")
library("stringr")
require("sqldf")
library("openxlsx")
library("tm")
library("data.table")
files <- list.files(path = "correios",pattern = "LOG_LOGRADOURO*")
bairro <- read.delim("correios/LOG_BAIRRO.TXT", header=F, stringsAsFactors=FALSE,sep = "@")
names(bairro) <- c("BAI_NU","UFE_SG","LOC_NU","BAI_NO","BAI_NO_ABREV")
ceps <- data.frame()
for(file in files) {
cep <- read.delim(paste0("correios/",file), header=FALSE, stringsAsFactors=FALSE,sep = "@")
ceps <- rbind(ceps,as.data.frame(cep))
}
names(ceps) <- c("LOG_NU","UFE_SG","LOC_NU","BAI_NU_INI","BAI_NU_FIM","LOG_NO","LOG_COMPLEMENTO",
"CEP","TLO_TX","LOG_STA_TLO","LOG_NO_ABREV")
head(ceps)
remove(cep,file,files)
bairro <- data.table(bairro,key = "BAI_NU",stringsAsFactors = F)
conBairro <- function(myBairro) {
bairro[which(bairro$BAI_NU == myBairro),]
}
ceps <- data.table(ceps,key = "CEP",stringsAsFactors = F)
findByCEP <- function(myQuery) {
ceps[which(ceps$CEP == myQuery),]
}
localidade <- read.csv(file = "correios/LOG_LOCALIDADE.txt",header = F,sep = "@",stringsAsFactors = F)
names(localidade) <- c("LOC_NU","UFE_SG","LOC_NO","CEP",
"LOC_IN_SIT","LOC_IN_TIPO_LOC","LOC_NU_SUB",
"LOC_NO_ABREV","MUN_NU")
localidade <- data.table(localidade,key = "LOC_NU",stringsAsFactors = F)
findByLOC <- function(myQuery) {
localidade[which(localidade$LOC_NU == myQuery),]
}
newXLS <- data.frame()
xls <- read.xlsx(xlsxFile = "data/Base_Endereco0219.xlsx",sheet = 1)
erros <- 0
file.remove("data/newXLS.csv")
file.remove("data/newXLSErr.csv")
for(i in 300001:389098) {
df <- xls[i,]
if(sapply(strsplit(df$Endereco, " "), length) < 3) {
write.table(x = df, file = "data/newXLSErr.csv", sep = ",", append = TRUE, quote = FALSE,
col.names = FALSE, row.names = FALSE)
erros <- erros +1
next
}
df$Endereco <- str_trim(string = df$Endereco,side = "both")
adr <- word(df$Endereco,1)
adr <- str_remove(df$Endereco,adr)
documents <- Corpus(VectorSource(adr))
adr = tm_map(documents, removePunctuation)$content
adr <- str_trim(string = adr,side = "both")
if(sapply(strsplit(adr, " "), length) > 2) {
x <- word(adr,-1)
}
adr <- str_remove(adr,x)
adr <- str_trim(string = adr,side = "both")
newCEP <- findByCEP(df$CEP)
if(length(newCEP$LOG_NU) == 0) {
write.table(x = df, file = "data/newXLSErr.csv", sep = ";", append = TRUE, quote = FALSE,
col.names = FALSE, row.names = FALSE)
erros <- erros +1
next
}
df$Endereco <- paste0(newCEP$TLO_TX," ",newCEP$LOG_NO,", ",x)
df$Bairro <- as.character(conBairro(myBairro = newCEP$BAI_NU_INI)[,4])
df$Descricao_Cidade <- as.character(findByLOC(newCEP$LOC_NU)[,3])
df$Identificador_Beneficiario <- as.character(df$Identificador_Beneficiario)
write.table(x = df, file = "data/newXLS.csv", sep = ";", append = TRUE, quote = FALSE,
col.names = FALSE, row.names = FALSE)
}