Página PROADESS: www.proadess.icict.fiocruz.br
source("apaga_resultados_anteriores.R", encoding = "UTF-8", verbose = F, echo = F)
#rm(list=ls()) ; invisible(gc())
# função cran fiocruz ---------------------------------------------------
loadlibrary <- function(x){
if (!require(x,character.only = TRUE)) {
install.packages(x, repos='http://cran.fiocruz.br/', dependencies = TRUE, type = "source")
if(!require(x,character.only = TRUE)) stop("Package not found")
}}
pacotes <- c("readr","dplyr","data.table","tidyr","lubridate","digest", "elastic")
for (i in 1:length(pacotes)) {
suppressPackageStartupMessages(loadlibrary(pacotes[i]))
}
# options(warn=1)
# options(tz="America/Bahia")
# options(scipen = 999)
# options(stringsAsFactors = F)
options(scipen = 999)
options(stringsAsFactors = F)
INICIO <- Sys.time()
#source("./1.1.0_Geracao_Selecoes.R", verbose = F, echo = F)
source("./1.1.1_Funcao_Tabela_Ano_Mun.R", verbose = F, echo = F)
suppressMessages(suppressPackageStartupMessages(library("elastic")))
es_url <- elastic::connect(host = "dados-pcdas.icict.fiocruz.br", port = 443, user = "caio.peixoto", pwd = "sigmund$", transport_schema = "https")
# source('./Sistemas/1.1.2_Selecoes_SIM.R', encoding = "UTF-8", verbose = F, echo = F)
source("./Sistemas/1.1.2_Selecoes_SVS.R", encoding = "UTF-8", verbose = F, echo = F)
source("./Sistemas/1.1.2_Selecoes_elastic_queries.R", encoding = "UTF-8", verbose = F, echo = F)
#Selecoes <- Selecoes_SVS
Selecoes <- rbind(Selecoes_elastic_queries, Selecoes_SVS)
source("./1.1.3_Ficha_Filtro.R", verbose = F, echo = F)
###################################################
### Ficha possui um total de '290' indicadores
### Indicadores que serão tabulados: 'L41,L58,M01,M02,M03,M04,M05,M06,M07,M08,M09,M15'
### Indicadores que NÃO serão tabulados: 'A10,A11,A12,A13,A15,A20,A22,A26,A28,A29,A34,A35,A36,A37,A38,A39,A40,A41,A42,A43,A44,A45,A46,A47,A51,A52,A53,A54,A55,B01,B06,B07,B09,B11,B12,B13,B14,B15,B16,B17,B18,B20,B21,B22,B23,B24,C04,C05,C06,C08,D01,D02,G01,G02,G03,G04,G08,G10,G13,H01,H02,H03,H04,K21,K36,K38,K40,K42,K43,K51,L06,L09,L10,L11,L13,L14,L15,L40,L41,L51,L57,M10,M11,M12,M13,M14,O04,O05,O07,R51,R52,R53,U06,U07,Z01,Z02,Z03,Z04,Z05,Z06,Z07,Z08,Z09,Z10,Z11,Z12,Z13,Z14,Z15,Z16'
Selecoes <- Selecoes[Selecoes[[1]] %in% Ficha_Selecao_Filtrada_Nome[[1]], ]
Resultado_Selecao <- NULL
Resultado_Selecao_SINASC <- NULL
Resultado_Selecao_SVS <- NULL
Resultado_Selecao_SIM <- NULL
ANO_POP <- 2000:2017
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n## Conectado ao servidor elastic!\n"))
print(es_url)
#es_url
cat(sprintf("\n## Início das queries ao servidor:\n"))
sink()
## Conectado ao servidor elastic!
<Elasticsearch Connection>
transport: https
host: dados-pcdas.icict.fiocruz.br
port: 443
path: NULL
username: caio.peixoto
password: <secret>
errors: simple
headers (names):
cainfo: NULL
## Início das queries ao servidor:
for (i in 1:dim(Selecoes)[[1]]) {
Sistema <- Selecoes[i, 3]
q_body <- NULL
ano <- NULL
query <- NULL
if (Sistema == "SIM") { # datasus-sim_2019_12_06
q_body <- Selecoes[i, 2]
indicador <- Selecoes[i, 1]
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n## query do indicador '%s' da base %s ####", indicador, Sistema))
sink()
Resultado_Query_SIM <- elastic::Search(conn = es_url, index = "datasus-sim_2019_12_06", body = q_body, asdf = TRUE)
try(Resultado_Selecao_SIM <- rbind(Resultado_Selecao_SIM, cbind(tabela_ano_mun(Resultado_Query_SIM), "Ind" = indicador)))
}
if (Sistema == "SINASC") { # datasus-sinasc_2019_12_06
q_body <- Selecoes[i, 2]
indicador <- Selecoes[i, 1]
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n## query do indicador '%s' da base %s ####", indicador, Sistema))
sink()
Resultado_Query_SINASC <- elastic::Search(conn = es_url, index = "datasus-sinasc_2019_12_06", body = q_body, asdf = TRUE)
try(Resultado_Selecao_SINASC <- rbind(Resultado_Selecao_SINASC, cbind(tabela_ano_mun(Resultado_Query_SINASC), "Ind" = indicador)))
}
if (Sistema == "SVS") {
q_body <- Selecoes[i, 2]
indicador <- Selecoes[i, 1]
sexo <- Selecoes[i, 4]
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n## query do indicador '%s' da base %s ####", indicador, Sistema))
sink()
for (j in 1:length(ANO_POP)) {
ano <- ANO_POP[j]
query <- paste0("ANO:", ano)
Resultado_Query_SVS <- elastic::Search(conn = es_url, index = "svs-pop-dss", body = q_body, q = ano, asdf = TRUE)
if (sexo == 1) {
try(Resultado_Selecao_SVS <- rbind(Resultado_Selecao_SVS, tabela_mun_pop_sexo(Resultado_Query_SVS, ano, indicador)))
} else {
try(Resultado_Selecao_SVS <- rbind(Resultado_Selecao_SVS, cbind(tabela_mun_pop(Resultado_Query_SVS, ano), "Ind" = indicador)))
}
}
}
Resultado_Selecao <- rbind(Resultado_Selecao_SIM, Resultado_Selecao_SVS, Resultado_Selecao_SINASC)
#Resultado_Selecao <- rbind(Resultado_Selecao, Resultado_Selecao_SVS)
#Resultado_Selecao <- rbind(Resultado_Selecao,Resultado_Selecao_SIM, Resultado_Selecao_SVS, Resultado_Selecao_SINASC)
}
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n\n## Terminado as consultas ao servidor elastic ####\n"))
sink()
## query do indicador 'M01_N_SIM' da base SIM ####
## query do indicador 'M02_N_SIM' da base SIM ####
## query do indicador 'M03_N_SIM' da base SIM ####
## query do indicador 'M04_N_SIM' da base SIM ####
## query do indicador 'M05_N_SIM' da base SIM ####
## query do indicador 'M05_D_SIM' da base SIM ####
## query do indicador 'M06_N_SIM' da base SIM ####
## query do indicador 'M07_N_SIM' da base SIM ####
## query do indicador 'M08_N_SIM' da base SIM ####
## query do indicador 'M09_N_SIM' da base SIM ####
## query do indicador 'D_Nascidos_SINASC' da base SINASC ####
## query do indicador 'POP_TOTAL' da base SVS ####
## query do indicador 'POP_MULHER' da base SVS ####
## query do indicador 'POP_HOMEM' da base SVS ####
## Terminado as consultas ao servidor elastic ####
setcolorder(Resultado_Selecao, c("Munic_res", "Ano", "Ind", "Freq"))
#Resultado_Selecao <- data.frame(Resultado_Selecao, stringsAsFactors = F)
Resultado_Selecao <- data.frame(Resultado_Selecao)
Resultado_Selecao$Freq <- as.numeric(Resultado_Selecao$Freq)
Resultado_Selecao$Ano <- as.character(Resultado_Selecao$Ano)
Resultado_Selecao$Munic_res <- substring(Resultado_Selecao$Munic_res,1,6)
Resultado_Selecao$Munic_res <- Regrasmun(Resultado_Selecao$Munic_res)
# Aplica a função "extras"
Resultado_Selecao$Munic_res <- Municipios_Extintos(Resultado_Selecao$Munic_res, Resultado_Selecao$Ano)
Resultado_Selecao$Munic_res <- Ignorado_para_capitais(Resultado_Selecao$Munic_res)
Resultado_Selecao <- data.table(Resultado_Selecao)
Resultado_Selecao <- Resultado_Selecao %>% group_by(Munic_res, Ano, Ind) %>% summarise(Freq = sum(Freq))
Resultado_Selecao <- data.frame(Resultado_Selecao)
#Resultado_Selecao <- Resultado_Selecao[!duplicated(lapply(Resultado_Selecao, digest))]
Selecoes_finalizadas <- unique(Resultado_Selecao$Ind)
write.csv2(Selecoes_finalizadas, "./Base_Selecao_Mun/Selecoes_Finalizadas.csv", row.names = F)
write.csv2(Resultado_Selecao, "./Base_Selecao_Mun/Base_Selecao.csv", row.names = F)
######################################################
# Remoção de objetos não necessários nas próximas etapas
rm(Selecoes_elastic_queries, Selecoes_SVS)
rm(q_body)
rm(indicador, Sistema)
rm(i)
rm(Resultado_Query_SIM, Resultado_Query_SINASC, Resultado_Query_SVS)
#rm(Selecoes_SVS,Resultado_Query_SVS)
rm(Selecoes_finalizadas)
rm(Ficha_Selecao_Filtrada_Nome)
rm(Selecoes)
######################################################
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n## Início do cálculo dos indicadores: ####\n"))
sink()
Cirs <- read.csv2("./Tabelas_Auxiliares/Lista_Cirs.csv", stringsAsFactors = F,colClasses = c("Mun"="character","Cgr"="character"),header = T, sep=";",dec=",", check.names = F)
#str(Cirs)
Cirs <- Cirs[,-(3:7)]
UF <- c(11,12,13,14,15,16,17,21,22,23,24,25,26,27,28,29,31,32,33,35,41,42,43,50,51,52,53)
RG <- c(1,2,3,4,5)
BR <- 555
Resultado_Selecao$Munic_res <- as.character(Resultado_Selecao$Munic_res)
## Início do cálculo dos indicadores: ####
Resultado_Selecao <- merge(Resultado_Selecao, Cirs, by.x = "Munic_res", by.y = "Mun", all.x = T)
Resultado_Selecao <- cbind(Resultado_Selecao,"UF" = substring(Resultado_Selecao$Munic_res,1,2), "RG" = substring(Resultado_Selecao$Munic_res,1,1),"BR" = 555)
Resultado_Selecao <- as.data.frame(Resultado_Selecao)
Final_Num_UF <- NULL
Final_Num_RG <- NULL
Final_Num_BR <- NULL
Final_Num_CGR <- NULL
Ficha_Selecao_Filtrada <- as.data.frame(Ficha_Selecao_Filtrada)
for (i in 1:length(Ficha_Selecao_Filtrada[[1]])) {
#Verifica se o ag_numerador e ag_denominador estão preenchidos.
if(Ficha_Selecao_Filtrada[[6]][[i]] != "" & Ficha_Selecao_Filtrada[[7]][[i]] != "") {
#Os anos iniciais sdependencies = finidos na ficha. Atualmente(2018), os indicadores começam no ano 2000.
ANOI <- Ficha_Selecao_Filtrada$Ag_ANOI[i]
#Os NUM e os DEN serão usados para gerar as agregações para região, UF, RG e BR.
Num_MUN <- NULL
Num_CGR<-NULL
Num_UF <- NULL
Num_RG <- NULL
Num_BR <- NULL
Den_MUN <-NULL
Den_CGR<-NULL
Den_UF <-NULL
Den_RG<-NULL
Den_BR <-NULL
#Neste passo, contamos o número de seleções que o indicador usa, se mais de uma, ocorre uma soma, no numerador e denominador.
#As seleções, na ficha, são separadas por ";"
NNum <- length(strsplit(Ficha_Selecao_Filtrada[[6]][[i]], ";")[[1]])
NDen <- length(strsplit(Ficha_Selecao_Filtrada[[7]][[i]], ";")[[1]])
#Juntamos as diferentes seleções para posterior soma - NUMERADOR
for(k in 1:NNum) {
# ORIGINAL:
# Num_MUN <-rbindlist(list(Resultado_Selecao,subset(Resultado_Selecao, toupper(Resultado_Selecao$Ind) ==toupper(strsplit(Ficha_Selecao_Filtrada$Ag_Numerador[[i]], ";")[[1]])[k])))
# CORRIGIDO:
Num_MUN <- rbindlist(list(Num_MUN,subset(Resultado_Selecao, toupper(Resultado_Selecao$Ind) == toupper(strsplit(Ficha_Selecao_Filtrada$Ag_Numerador[[i]], ";")[[1]])[k])))
#Num_MUN <- rbind(Num_MUN,subset(Resultado_Selecao, toupper(Resultado_Selecao$Ind)==toupper(strsplit(Ficha_Selecao_Filtrada$Ag_Numerador[[i]], ";")[[1]])[k]))
}
Num_MUN <- data.table(Num_MUN)
#Filtro para o Ano inicial
Num_MUN <- Num_MUN[Ano >= ANOI,]
#SOMA UF
Num_UF <- Num_MUN[, list("Freq" = sum(Freq)), by = c("UF","Ano")]
#Num_UF <- Num_MUN[, list("Freq" = sum(Freq)), by = c("UF","Ano")]
Num_UF <- Num_UF[!is.na(Num_UF[[1]]) & !is.na(Num_UF[[2]]) & !is.na(Num_UF[[3]]),]
names(Num_UF)[3] <- "Freq_Num"
#SOMA RG
Num_RG <- Num_MUN[, list("Freq" = sum(Freq)), by = c("RG","Ano")]
#Num_RG <- Num_MUN[, list("Freq" = sum(Freq)), by = c("RG","Ano")]
Num_RG <- Num_RG[!is.na(Num_RG[[1]]) & !is.na(Num_RG[[2]]) & !is.na(Num_RG[[3]]),]
names(Num_RG)[3] <- "Freq_Num"
#SOMA BR
Num_BR <- Num_MUN[, list("Freq" = sum(Freq)), by = c("BR","Ano")]
Num_BR <- Num_BR[!is.na(Num_BR[[1]]) & !is.na(Num_BR[[2]]) & !is.na(Num_BR[[3]]),]
names(Num_BR)[3] <- "Freq_Num"
#SOMA CGR
Num_CGR <- Num_MUN[, list("Freq" = sum(Freq)), by = c("Cgr","Ano")]
Num_CGR <- Num_CGR[!is.na(Num_CGR[[1]]) & !is.na(Num_CGR[[2]]) & !is.na(Num_CGR[[3]]),]
#Num_CGR <- Num_CGR[!Num_CGR[[1]] == 99999,]
Num_CGR <- Num_CGR[Num_CGR[[1]] != 99999,]
names(Num_CGR)[3] <- "Freq_Num"
#Checa se o Denominador é 1.
if(strsplit(Ficha_Selecao_Filtrada[[7]][[i]], ";")[[1]][1] != 1) {
#Juntamos as diferentes seleções para posterior soma - DENOMINADOR
for(z in 1:NDen) {
Den_MUN <- rbindlist(list(Resultado_Selecao,subset(Resultado_Selecao,toupper(Resultado_Selecao$Ind) == toupper(strsplit(Ficha_Selecao_Filtrada$Ag_Denominador[[i]], ";")[[1]])[z])))
}
Den_MUN <- data.table(Den_MUN)
#Filtro para o Ano inicial
Den_MUN <- Den_MUN[Ano >= ANOI,]
#SOMA UF
Den_UF <- Den_MUN[, list("Freq" = sum(Freq)), by = c("UF","Ano")]
Den_UF <- Den_UF[!is.na(Den_UF[[1]]) & !is.na(Den_UF[[2]]) & !is.na(Den_UF[[3]]),]
names(Den_UF)[3] <- "Freq_Den"
#SOMA RG
Den_RG <- Den_MUN[, list("Freq" = sum(Freq)), by = c("RG","Ano")]
Den_RG<-Den_RG[!is.na(Den_RG[[1]]) & !is.na(Den_RG[[2]]) & !is.na(Den_RG[[3]]),]
names(Den_RG)[3] <- "Freq_Den"
#SOMA BR
Den_BR <- Den_MUN[, list("Freq" = sum(Freq)), by = c("BR","Ano")]
Den_BR <-Den_BR[!is.na(Den_BR[[1]]) & !is.na(Den_BR[[2]]) & !is.na(Den_BR[[3]]),]
names(Den_BR)[3] <- "Freq_Den"
#SOMA CGR
Den_CGR <- Den_MUN[, list("Freq" = sum(Freq)), by = c("Cgr","Ano")]
Den_CGR <- Den_CGR[!is.na(Den_CGR[[1]]) & !is.na(Den_CGR[[2]]) & !is.na(Den_CGR[[3]]),]
#Den_CGR <- Den_CGR[!Den_CGR[[1]]==99999,]
Den_CGR <- Den_CGR[Den_CGR[[1]] != 99999,]
names(Den_CGR)[3] <- "Freq_Den"
Den_UF <- data.frame(Den_UF)
Den_RG <- data.frame(Den_RG)
Den_BR <- data.frame(Den_BR)
Den_CGR <- data.frame(Den_CGR)
} else {
#Se o denominador for 1, seguimos com esta proposta
Den_UF <- cbind(Num_UF[,1:2],"Freq_Den" = 1)
Den_RG <- cbind(Num_RG[,1:2],"Freq_Den" = 1)
Den_BR <- cbind(Num_BR[,1:2],"Freq_Den" = 1)
Den_CGR <- cbind(Num_CGR[,1:2],"Freq_Den" = 1)
}
#Junta Numerador e Denominador num único objeto
Num_UF <- merge(Num_UF, Den_UF, by=c("UF","Ano"), all = TRUE)
Num_RG <- merge(Num_RG, Den_RG, by=c("RG","Ano"), all = TRUE)
Num_BR <- merge(Num_BR, Den_BR, by=c("BR","Ano"), all = TRUE)
Num_CGR <- merge(Num_CGR, Den_CGR, by=c("Cgr","Ano"), all = TRUE)
#Realiza a operação Numerador/Denominador * Multiplicador
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n### Indicador: '%s', Fonte: '%s'\n### Numerador: '%s' ### Denominador: '%s'\n### Período: de '%d' até '%d'\n",
Ficha_Selecao_Filtrada$cod_ind_p[i],
Ficha_Selecao_Filtrada$Ag_fonte_p[i],
Ficha_Selecao_Filtrada$Ag_Numerador[i],
Ficha_Selecao_Filtrada$Ag_Denominador[i],
Ficha_Selecao_Filtrada$Ag_ANOI[i],
Ficha_Selecao_Filtrada$Ag_ANOF[i]))
sink()
Num_UF <- cbind(Num_UF,"Res_Ind"=Ficha_Selecao_Filtrada$Ag_Multiplicador[[i]] * Num_UF$Freq_Num/Num_UF$Freq_Den)
Num_RG <- cbind(Num_RG,"Res_Ind"=Ficha_Selecao_Filtrada$Ag_Multiplicador[[i]] * Num_RG$Freq_Num/Num_RG$Freq_Den)
Num_BR <- cbind(Num_BR,"Res_Ind"=Ficha_Selecao_Filtrada$Ag_Multiplicador[[i]] * Num_BR$Freq_Num/Num_BR$Freq_Den)
Num_CGR <- cbind(Num_CGR,"Res_Ind"=Ficha_Selecao_Filtrada$Ag_Multiplicador[[i]] * Num_CGR$Freq_Num/Num_CGR$Freq_Den)
#Gera a tabela padrão com as combinações das UF, RG, BR e CGR, com os anos iniciais e finais
#Aproveita o ano inicial e final dos indicadores.
MaxNum <- max(unique(Num_BR[[2]], na.rm=T), na.rm=T)
MaxDen <- max(unique(Den_BR[[2]], na.rm=T), na.rm=T)
MaxND <- min(c(MaxNum,MaxDen), na.rm=T)
# MaxNum = max(unique(Num_BR[[2]]), na.rm=T)
# MaxDen = max(unique(Den_BR[[2]]), na.rm=T)
# MaxND = min(c(MaxNum,MaxDen), na.rm=T)
#Gera a tabela padrão para as abrangências.
Tab_Padrao_UF <- expand.grid(UF,c(ANOI:MaxND))
names(Tab_Padrao_UF)[1] <- "UF"
names(Tab_Padrao_UF)[2] <- "Ano"
Tab_Padrao_RG<-expand.grid(RG,c(ANOI:MaxND))
names(Tab_Padrao_RG)[1] <- "RG"
names(Tab_Padrao_RG)[2] <- "Ano"
Tab_Padrao_BR<-expand.grid(BR,c(ANOI:MaxND))
names(Tab_Padrao_BR)[1] <- "BR"
names(Tab_Padrao_BR)[2] <- "Ano"
#Tab_Padrao_CGR <- expand.grid(unique(Cirs[2]),c(ANOI:MaxND))
Tab_Padrao_CGR<-expand.grid(unique(Cirs[2][Cirs[2]!=99999]),c(ANOI:MaxND))
names(Tab_Padrao_CGR)[1] <- "Cgr"
names(Tab_Padrao_CGR)[2] <- "Ano"
#Une os resultados a tabela padrão
Num_UF <- data.table(merge(Tab_Padrao_UF,Num_UF,all.x=T))
Num_RG <- data.table(merge(Tab_Padrao_RG,Num_RG,all.x=T))
Num_BR <- data.table(merge(Tab_Padrao_BR,Num_BR,all.x=T))
Num_CGR <- data.table(merge(Tab_Padrao_CGR,Num_CGR,all.x=T))
#O Código do indicador para a página do proadess segue a orientação da ficha.
#Está dividido em 2 partes
Cod_Indicador_Parte1 <- paste(Ficha_Selecao_Filtrada[i,c(2,9:11)],collapse="")
Cod_Indicador_Parte2 <- paste(Ficha_Selecao_Filtrada[i,c(13:19)],collapse="")
Num_UF <- cbind(Num_UF,"Cod_indicador"=paste0(Cod_Indicador_Parte1,substring(Num_UF$Ano,3,4),Cod_Indicador_Parte2))
Num_RG <- cbind(Num_RG,"Cod_indicador"=paste0(Cod_Indicador_Parte1,substring(Num_RG$Ano,3,4),Cod_Indicador_Parte2))
Num_BR <- cbind(Num_BR,"Cod_indicador"=paste0(Cod_Indicador_Parte1,substring(Num_BR$Ano,3,4),Cod_Indicador_Parte2))
Num_CGR <- cbind(Num_CGR,"Cod_indicador"=paste0(Cod_Indicador_Parte1,substring(Num_CGR$Ano,3,4),Cod_Indicador_Parte2))
#Imputa valor zero se houver informação no Denominador e não houver no numerador
if(Ficha_Selecao_Filtrada$Ag_NA[[i]] == 0) {
Num_UF$Res_Ind[is.na(Num_UF$Freq_Num) & !is.na(Num_UF$Freq_Den)] <- 0
Num_RG$Res_Ind[is.na(Num_RG$Freq_Num) & !is.na(Num_RG$Freq_Den)] <- 0
Num_BR$Res_Ind[is.na(Num_BR$Freq_Num) & !is.na(Num_BR$Freq_Den)] <- 0
Num_CGR$Res_Ind[is.na(Num_CGR$Freq_Num) & !is.na(Num_CGR$Freq_Den)] <- 0
}
#Imputa valor zero se a variável "Zeros" for igual a 1.
if(!is.na(Ficha_Selecao_Filtrada$Zeros[i]) & Ficha_Selecao_Filtrada$Zeros[i] == 1) {
Num_UF$Res_Ind[is.na(Num_UF$Res_Ind)] <- 0
Num_RG$Res_Ind[is.na(Num_RG$Res_Ind)] <- 0
Num_BR$Res_Ind[is.na(Num_BR$Res_Ind)] <- 0
Num_CGR$Res_Ind[is.na(Num_CGR$Res_Ind)] <- 0
}
#Imputa NA se ocorrer um infinito
Num_UF$Res_Ind[!is.finite(Num_UF$Res_Ind)] <- 0
Num_RG$Res_Ind[!is.finite(Num_RG$Res_Ind)] <- 0
Num_BR$Res_Ind[!is.finite(Num_BR$Res_Ind)] <- 0
Num_CGR$Res_Ind[!is.finite(Num_CGR$Res_Ind)] <- 0
}
Final_Num_UF <- data.table::rbindlist(list(Num_UF, Final_Num_UF))
Final_Num_RG <- data.table::rbindlist(list(Num_RG, Final_Num_RG))
Final_Num_BR <- data.table::rbindlist(list(Num_BR, Final_Num_BR))
Final_Num_CGR <- data.table::rbindlist(list(Num_CGR, Final_Num_CGR))
}
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n\n##### Fim do cálculo de todos Indicadores #####\n##############\n"))
sink()
### Indicador: 'L41', Fonte: 'IBGE'
### Numerador: 'POP_HOMEM' ### Denominador: '1'
### Período: de '2000' até '2017'
### Indicador: 'L41', Fonte: 'IBGE'
### Numerador: 'POP_TOTAL' ### Denominador: '1'
### Período: de '2000' até '2017'
### Indicador: 'L41', Fonte: 'IBGE'
### Numerador: 'POP_MULHER' ### Denominador: '1'
### Período: de '2000' até '2017'
### Indicador: 'L58', Fonte: 'SINASC'
### Numerador: 'D_Nascidos_SINASC' ### Denominador: '1'
### Período: de '2000' até '2017'
### Indicador: 'M01', Fonte: 'SIM e SINASC'
### Numerador: 'M01_N_SIM' ### Denominador: 'D_Nascidos_SINASC'
### Período: de '2000' até '2017'
### Indicador: 'M02', Fonte: 'SIM e SINASC'
### Numerador: 'M02_N_SIM' ### Denominador: 'D_Nascidos_SINASC'
### Período: de '2000' até '2017'
### Indicador: 'M03', Fonte: 'SIM e SINASC'
### Numerador: 'M03_N_SIM' ### Denominador: 'D_Nascidos_SINASC'
### Período: de '2000' até '2017'
### Indicador: 'M04', Fonte: 'SIM e SINASC'
### Numerador: 'M04_N_SIM' ### Denominador: 'D_Nascidos_SINASC'
### Período: de '2000' até '2017'
### Indicador: 'M05', Fonte: 'SIM'
### Numerador: 'M05_N_SIM' ### Denominador: 'M05_D_SIM'
### Período: de '2000' até '2017'
### Indicador: 'M06', Fonte: 'SIM e IBGE'
### Numerador: 'M06_N_SIM' ### Denominador: 'POP_TOTAL'
### Período: de '2000' até '2017'
### Indicador: 'M07', Fonte: 'SIM e IBGE'
### Numerador: 'M07_N_SIM' ### Denominador: 'POP_TOTAL'
### Período: de '2000' até '2017'
### Indicador: 'M08', Fonte: 'SIM e IBGE'
### Numerador: 'M08_N_SIM' ### Denominador: 'POP_TOTAL'
### Período: de '2000' até '2017'
### Indicador: 'M09', Fonte: 'SIM e IBGE'
### Numerador: 'M09_N_SIM' ### Denominador: 'POP_TOTAL'
### Período: de '2000' até '2017'
### Indicador: 'M15', Fonte: 'SIM e SINASC'
### Numerador: 'M02_N_SIM;M03_N_SIM' ### Denominador: 'D_Nascidos_SINASC'
### Período: de '2000' até '2017'
##### Fim do cálculo de todos Indicadores #####
##############
#write.csv2(Num_BR,"./Base_Final_Proadess/Base_teste_BR.csv", row.names=F)
write.csv2(Final_Num_UF,"./Base_Final_Proadess/Base_completa_LONG_UF.csv", row.names=F)
write.csv2(Final_Num_RG,"./Base_Final_Proadess/Base_completa_LONG_RG.csv", row.names=F)
write.csv2(Final_Num_BR,"./Base_Final_Proadess/Base_completa_LONG_BR.csv", row.names=F)
write.csv2(Final_Num_CGR,"./Base_Final_Proadess/Base_completa_LONG_CGR.csv", row.names=F)
Organiza bases e dicionários no padrão de importação da página * Salva uma nova base com os padrões de importação da página do PROADESS * Formata a base para a página do Proadess e gera as suas fichas * Basicamente, passa do formato long para colunas
suppressMessages(suppressPackageStartupMessages(library("reshape2")))
options(scipen = 999)
options(stringsAsFactors = F)
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n##############\n##### Início geração das Fichas primárias e secundárias #####\n\n"))
sink()
Final_Num_CGR$Res_Ind <- as.numeric(Final_Num_CGR$Res_Ind)
##############
##### Início geração das Fichas primárias e secundárias #####
#CGR
Final_Num_CGR_PAGINA <- reshape2::dcast(Final_Num_CGR, Cgr ~ Cod_indicador, value.var="Res_Ind")
Cirs_Nomes <- read.csv2('./Tabelas_Auxiliares/Lista_Cirs.csv',stringsAsFactors = F,colClasses = c("Mun"="character","Cgr"="character"), header = T, sep=";",dec=",", check.names = F)
#str(Cirs_Nomes)
Cirs_Nomes <- unique(Cirs_Nomes[,1:7])
Cirs_Nomes <- Cirs_Nomes[Cirs_Nomes[[2]] != "99999",]
Cirs_Nomes <- Cirs_Nomes[Cirs_Nomes[[2]] != 99999,]
Cirs_Nomes <- cbind(Cirs_Nomes ,"Cod_regiao" = substring(Cirs_Nomes[[1]],1,1))
Cirs_Nomes <- Cirs_Nomes [,c(2,3,8,4,1,6,7)]
#Alterar pra regiao
names(Cirs_Nomes)[1] <- "REGIAO"
names(Cirs_Nomes)[2] <- "Cod_estado"
names(Cirs_Nomes)[3] <- "Cod_regiao"
names(Cirs_Nomes)[4] <- "Estado"
names(Cirs_Nomes)[5] <- "Municipio"
names(Cirs_Nomes)[6] <- "Nome_cgr"
names(Cirs_Nomes)[7] <- "Nome_municipio"
# Cirs_Nomes <- unique(Cirs_Nomes [,2:6])
#
# #Retira regiões não encontradas
# Cirs_Nomes <- Cirs_Nomes[Cirs_Nomes[[1]] != "99999",]
# #Cirs_Nomes <- Cirs_Nomes[Cirs_Nomes[[1]] != 99999,]
#
# Cirs_Nomes <- cbind(Cirs_Nomes ,"Municipio"="","Nome_municipio"="")
# Cirs_Nomes <- cbind(Cirs_Nomes ,"Cod_regiao" = substring(Cirs_Nomes[[1]],1,1))
# Cirs_Nomes <- Cirs_Nomes [,c(1,2,8,3,6,5,7)]
#
# #Alterar pra regiao
# names(Cirs_Nomes)[1] <- "REGIAO"
# names(Cirs_Nomes)[2] <- "Cod_estado"
# names(Cirs_Nomes)[3] <- "Cod_regiao"
# names(Cirs_Nomes)[4] <- "Estado"
# names(Cirs_Nomes)[5] <- "Municipio"
# names(Cirs_Nomes)[6] <- "Nome_cgr"
# names(Cirs_Nomes)[7] <- "Nome_municipio"
#str(Final_Num_CGR_PAGINA$Cgr) ;str(Cirs_Nomes)
Final_Num_CGR_PAGINA$Cgr <- as.character(Final_Num_CGR_PAGINA$Cgr)
Final_Num_CGR_PAGINA <- merge(Cirs_Nomes,Final_Num_CGR_PAGINA, by.x = "REGIAO", by.y = "Cgr", all.x = T)
Final_Num_CGR_PAGINA <- cbind(Final_Num_CGR_PAGINA,"Falso"=1)
write.csv2(Final_Num_CGR_PAGINA,"./Base_Final_Proadess/Base_Pagina_COLUNA_CGR.csv",row.names=F, na = "-1")
#######################################################################################################
#UF
#RG
#BR
Final_Num_UF$Res_Ind <- as.numeric(Final_Num_UF$Res_Ind)
Final_Num_RG$Res_Ind <- as.numeric(Final_Num_RG$Res_Ind)
Final_Num_BR$Res_Ind <- as.numeric(Final_Num_BR$Res_Ind)
Final_Num_UF_PAGINA <- reshape2::dcast(Final_Num_UF, UF ~ Cod_indicador, value.var="Res_Ind")
Final_Num_UF_PAGINA <- cbind(Final_Num_UF_PAGINA,"Falso"=1)
Final_Num_RG_PAGINA <- reshape2::dcast(Final_Num_RG, RG ~ Cod_indicador, value.var="Res_Ind")
Final_Num_RG_PAGINA <- cbind(Final_Num_RG_PAGINA,"Falso"=1)
Final_Num_BR_PAGINA <- reshape2::dcast(Final_Num_BR, BR ~ Cod_indicador, value.var="Res_Ind")
Final_Num_BR_PAGINA <- cbind(Final_Num_BR_PAGINA,"Falso"=1)
write.csv2(Final_Num_UF_PAGINA,"./Base_Final_Proadess/Base_Pagina_COLUNA_UF.csv",row.names=F,na="-1")
write.csv2(Final_Num_RG_PAGINA,"./Base_Final_Proadess/Base_Pagina_COLUNA_RG.csv",row.names=F,na="-1")
write.csv2(Final_Num_BR_PAGINA,"./Base_Final_Proadess/Base_Pagina_COLUNA_BR.csv",row.names=F,na="-1")
#####################################################################################################
Ficha_UF_RG_BR <- read.csv2("./Tabelas_Auxiliares/Fichas/Primario/Primario_UF_RG_BR.csv", stringsAsFactors = F, colClasses = c("periodo_inic" = "numeric","periodo_fin" = "numeric"), header = T, sep=";",dec=",", check.names = F, na.strings = "")
#str(Ficha_UF_RG_BR)
Ficha_UF_RG_BR <- Ficha_primaria(Final_Num_BR,Ficha_UF_RG_BR)
#str(Ficha_UF_RG_BR)
write.csv2(Ficha_UF_RG_BR,"./Base_Final_Proadess/Ficha_Primaria_UF_RG_BR_ANOI_ANOF.csv",row.names=F,na="")
#####################################################################################################
Ficha_CGR <- read.csv2("./Tabelas_Auxiliares/Fichas/Primario/Primario_CGR.csv", colClasses = c("periodo_inic" = "numeric","periodo_fin" = "numeric"), header = T, sep=";",dec=",", check.names = F)
#str(Ficha_CGR)
Ficha_CGR <- Ficha_primaria(Final_Num_CGR,Ficha_CGR)
write.csv2(Ficha_CGR,"./Base_Final_Proadess/Ficha_Primaria_CGR_ANOI_ANOF.csv",row.names=F,na="")
######################################################################################################
Textos_Tabelas_Secundario <- read.csv2("./Tabelas_Auxiliares/Fichas/Secundario/Textos_Tabelas_Secundario.csv",stringsAsFactors = F, header = TRUE, colClasses = c("ano"="numeric"), sep=";",dec=",", check.names = F)
#str(Textos_Tabelas_Secundario)
Ficha_Secundaria_UF_RG_BR <- Ficha_secundaria(Final_Num_BR,Textos_Tabelas_Secundario,Ficha_UF_RG_BR)
Ficha_Secundaria_CGR <- Ficha_secundaria(Final_Num_CGR,Textos_Tabelas_Secundario,Ficha_CGR)
write.csv2(Ficha_Secundaria_UF_RG_BR,"./Base_Final_Proadess/Ficha_Secundaria_UF_RG_BR.csv",row.names=F,na="")
write.csv2(Ficha_Secundaria_CGR,"./Base_Final_Proadess/Ficha_Secundaria_CGR.csv",row.names=F,na="")
#####################################################################################################
#rm(list = c('Cirs','Cirs_Nomes','Ficha_Selecao_Filtrada'))
#rm(list = c('Final_Num_BR','Final_Num_UF','Final_Num_RG','Final_Num_CGR'))
rm(list = c('Final_Num_BR_PAGINA','Final_Num_UF_PAGINA','Final_Num_RG_PAGINA','Final_Num_CGR_PAGINA'))
rm(Textos_Tabelas_Secundario)
######################################################
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n\n##### Fim da geração das Fichas primárias e secundárias #####\n##############\n"))
sink()
######################################################
#source("./1.2.0_Base_formato_pagina.R",encoding = "UTF-8", verbose = F, echo = F)
##### Fim da geração das Fichas primárias e secundárias #####
##############
FIM <- Sys.time()
#INICIO <- Sys.time()
# cat(sprintf("\n##Tempo levado:\n"))
tempo3 <- lubridate::interval(lubridate::ymd_hms(INICIO),lubridate::ymd_hms(FIM))
#print(lubridate::as.duration(tempo3))
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n\n###############################\n###############################\n#### Fim de todos os scripts!\n#### Tempo levado: '%s'\n###############################\n###############################\n",lubridate::as.duration(tempo3)))
sink()
#rm(list = ls()[!ls() %in% c("INICIO","FIM")]); invisible(gc())
######################################################
rm(list=ls()) ; invisible(gc())
###############################
###############################
#### Fim de todos os scripts!
#### Tempo levado: '0s'
###############################
###############################
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n## Resultados Gerados (ENVIAR p/ PÁG):\nBase UF/GR/BR:\n"))
print(list.files("./Base_Final_Proadess", pattern = "*.csv", full.names = TRUE))
cat(sprintf("\nBase Mun/RS:\n"))
print(list.files("./Base_Selecao_Mun", pattern = "*.csv", full.names = TRUE))
cat(sprintf("\nLogs:\n"))
print(list.files("./logs", pattern = "*.txt", full.names = TRUE))
sink()
## Resultados Gerados (ENVIAR p/ PÁG):
Base UF/GR/BR:
[1] "./Base_Final_Proadess/Base_completa_LONG_BR.csv"
[2] "./Base_Final_Proadess/Base_completa_LONG_CGR.csv"
[3] "./Base_Final_Proadess/Base_completa_LONG_RG.csv"
[4] "./Base_Final_Proadess/Base_completa_LONG_UF.csv"
[5] "./Base_Final_Proadess/Base_Pagina_COLUNA_BR.csv"
[6] "./Base_Final_Proadess/Base_Pagina_COLUNA_CGR.csv"
[7] "./Base_Final_Proadess/Base_Pagina_COLUNA_RG.csv"
[8] "./Base_Final_Proadess/Base_Pagina_COLUNA_UF.csv"
[9] "./Base_Final_Proadess/Ficha_Primaria_CGR_ANOI_ANOF.csv"
[10] "./Base_Final_Proadess/Ficha_Primaria_UF_RG_BR_ANOI_ANOF.csv"
[11] "./Base_Final_Proadess/Ficha_Secundaria_CGR.csv"
[12] "./Base_Final_Proadess/Ficha_Secundaria_UF_RG_BR.csv"
Base Mun/RS:
[1] "./Base_Selecao_Mun/Base_Selecao.csv"
[2] "./Base_Selecao_Mun/Selecoes_Finalizadas.csv"
Logs:
[1] "./logs/agregacao.txt"
suppressMessages(suppressPackageStartupMessages(library("zip")))
zip::zipr("./PAG.zip",c("Base_Final_Proadess/","Base_Selecao_Mun/"))
sink("./logs/agregacao.txt", append = TRUE, split = TRUE)
cat(sprintf("\n## arquivos compactados em 'PAG.zip':\n"))
print(list.files(".", pattern = "*.zip", full.names = TRUE))
cat(sprintf("\n## Tamanho final do arquivo 'PAG.zip':\n"))
print(format(object.size("PAG.zip"),units = "auto"))
sink()
## arquivos compactados em 'PAG.zip':
[1] "./PAG.zip"
## Tamanho final do arquivo 'PAG.zip':
[1] "112 bytes"
source("imprime.resultado3.R", encoding = "UTF-8", echo = F)
##Resultados Salvos:
[1] "Base_completa_LONG_BR.csv"
[2] "Base_completa_LONG_CGR.csv"
[3] "Base_completa_LONG_RG.csv"
[4] "Base_completa_LONG_UF.csv"
[5] "Base_Pagina_COLUNA_BR.csv"
[6] "Base_Pagina_COLUNA_CGR.csv"
[7] "Base_Pagina_COLUNA_RG.csv"
[8] "Base_Pagina_COLUNA_UF.csv"
[9] "Ficha_Primaria_CGR_ANOI_ANOF.csv"
[10] "Ficha_Primaria_UF_RG_BR_ANOI_ANOF.csv"
[11] "Ficha_Secundaria_CGR.csv"
[12] "Ficha_Secundaria_UF_RG_BR.csv"
character(0)
## Lista Indicadores calculados :
[1] "D_Nascidos_SINASC" "M01_N_SIM" "M02_N_SIM"
[4] "M03_N_SIM" "M04_N_SIM" "M05_D_SIM"
[7] "M05_N_SIM" "M06_N_SIM" "M07_N_SIM"
[10] "M08_N_SIM" "M09_N_SIM" "POP_HOMEM"
[13] "POP_MULHER" "POP_TOTAL"
## período em Anos:
[1] 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014
[16] 2015 2016 2017
'data.frame': 1135689 obs. of 4 variables:
$ Munic_res: chr "110001" "110001" "110001" "110001" ...
$ Ano : int 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 ...
$ Ind : chr "D_Nascidos_SINASC" "M01_N_SIM" "M02_N_SIM" "M03_N_SIM" ...
$ Freq : num 617 10 3 2 13 13 15 18 7 7 ...
Munic_res Ano Ind Freq
110001 2000 D_Nascidos_SINASC 617
110001 2000 M01_N_SIM 10
110001 2000 M02_N_SIM 3
110001 2000 M03_N_SIM 2
110001 2000 M05_D_SIM 13
110001 2000 M05_N_SIM 13
##Nascidos Vivos - L58 - Brasil:
Ano Ind Freq
2,000 D_Nascidos_SINASC 3,206,761
2,001 D_Nascidos_SINASC 3,115,474
2,002 D_Nascidos_SINASC 3,059,402
2,003 D_Nascidos_SINASC 3,038,251
2,004 D_Nascidos_SINASC 3,026,548
2,005 D_Nascidos_SINASC 3,035,096
2,006 D_Nascidos_SINASC 2,944,928
2,007 D_Nascidos_SINASC 2,891,328
2,008 D_Nascidos_SINASC 2,934,828
2,009 D_Nascidos_SINASC 2,881,581
2,010 D_Nascidos_SINASC 2,861,868
2,011 D_Nascidos_SINASC 2,913,160
2,012 D_Nascidos_SINASC 2,905,789
2,013 D_Nascidos_SINASC 2,904,027
2,014 D_Nascidos_SINASC 2,979,259
2,015 D_Nascidos_SINASC 3,017,668
2,016 D_Nascidos_SINASC 2,857,800
2,017 D_Nascidos_SINASC 2,923,535
##Nascidos Vivos - L58 - UFs, Ano 2017:
Ano UF Freq
2,017 11 27,503
2,017 12 16,358
2,017 13 78,066
2,017 14 11,737
2,017 15 138,684
2,017 16 15,399
2,017 17 24,935
2,017 21 112,985
2,017 22 48,551
2,017 23 127,797
2,017 24 46,222
2,017 25 57,493
2,017 26 135,932
2,017 27 50,368
2,017 28 33,867
2,017 29 204,096
2,017 31 260,959
2,017 32 55,846
2,017 33 223,224
2,017 35 611,803
2,017 41 157,701
2,017 42 98,335
2,017 43 141,568
2,017 50 44,747
2,017 51 57,271
2,017 52 97,520
2,017 53 44,568
##População total - L41:
Ano Ind Freq
2,000 POP_TOTAL 173,716,354
2,001 POP_TOTAL 176,113,298
2,002 POP_TOTAL 178,538,376
2,003 POP_TOTAL 180,859,436
2,004 POP_TOTAL 183,119,924
2,005 POP_TOTAL 185,441,547
2,006 POP_TOTAL 187,581,859
2,007 POP_TOTAL 189,745,716
2,008 POP_TOTAL 191,789,444
2,009 POP_TOTAL 193,789,087
2,010 POP_TOTAL 195,708,841
2,011 POP_TOTAL 197,602,140
2,012 POP_TOTAL 199,465,794
2,013 POP_TOTAL 201,272,261
2,014 POP_TOTAL 203,005,989
2,015 POP_TOTAL 204,684,120
2,016 POP_TOTAL 206,361,656
2,017 POP_TOTAL 207,961,462
##População total - L41 - UFs, Ano 2017:
UF Ano Freq
11 2,017 1,811,839
12 2,017 831,636
13 2,017 4,085,801
14 2,017 522,636
15 2,017 8,382,764
16 2,017 797,722
17 2,017 1,554,228
21 2,017 7,014,348
22 2,017 3,231,359
23 2,017 9,040,630
24 2,017 3,507,003
25 2,017 4,037,660
26 2,017 9,485,368
27 2,017 3,383,891
28 2,017 2,292,150
29 2,017 15,370,668
31 2,017 21,137,689
32 2,017 4,016,356
33 2,017 16,725,007
35 2,017 45,145,291
41 2,017 11,337,028
42 2,017 7,009,229
43 2,017 11,341,048
50 2,017 2,717,181
51 2,017 3,352,612
52 2,017 6,790,874
53 2,017 3,039,444
##População total HOMENS - L41:
Ano Ind Freq
2,000 POP_HOMEM 86,305,651
2,001 POP_HOMEM 87,472,207
2,002 POP_HOMEM 88,612,655
2,003 POP_HOMEM 89,723,946
2,004 POP_HOMEM 90,802,705
2,005 POP_HOMEM 91,917,657
2,006 POP_HOMEM 92,949,566
2,007 POP_HOMEM 93,981,777
2,008 POP_HOMEM 94,953,501
2,009 POP_HOMEM 95,916,690
2,010 POP_HOMEM 98,901,646
2,011 POP_HOMEM 99,899,325
2,012 POP_HOMEM 98,599,934
2,013 POP_HOMEM 99,465,694
2,014 POP_HOMEM 102,735,669
2,015 POP_HOMEM 101,082,398
2,016 POP_HOMEM 104,464,735
2,017 POP_HOMEM 102,701,983
##População total MULHERES - L41:
Ano Ind Freq
2,000 POP_MULHER 87,410,703
2,001 POP_MULHER 88,641,091
2,002 POP_MULHER 89,925,721
2,003 POP_MULHER 91,135,490
2,004 POP_MULHER 92,317,219
2,005 POP_MULHER 93,523,890
2,006 POP_MULHER 94,632,293
2,007 POP_MULHER 95,763,939
2,008 POP_MULHER 96,835,943
2,009 POP_MULHER 97,872,397
2,010 POP_MULHER 96,807,195
2,011 POP_MULHER 97,702,815
2,012 POP_MULHER 100,865,860
2,013 POP_MULHER 101,806,567
2,014 POP_MULHER 100,270,320
2,015 POP_MULHER 103,601,722
2,016 POP_MULHER 101,896,921
2,017 POP_MULHER 105,259,480
##População total - L41:
Ano homens mulheres total total2
2,000 86,305,651 87,410,703 173,716,354 173,716,354
2,001 87,472,207 88,641,091 176,113,298 176,113,298
2,002 88,612,655 89,925,721 178,538,376 178,538,376
2,003 89,723,946 91,135,490 180,859,436 180,859,436
2,004 90,802,705 92,317,219 183,119,924 183,119,924
2,005 91,917,657 93,523,890 185,441,547 185,441,547
2,006 92,949,566 94,632,293 187,581,859 187,581,859
2,007 93,981,777 95,763,939 189,745,716 189,745,716
2,008 94,953,501 96,835,943 191,789,444 191,789,444
2,009 95,916,690 97,872,397 193,789,087 193,789,087
2,010 98,901,646 96,807,195 195,708,841 195,708,841
2,011 99,899,325 97,702,815 197,602,140 197,602,140
2,012 98,599,934 100,865,860 199,465,794 199,465,794
2,013 99,465,694 101,806,567 201,272,261 201,272,261
2,014 102,735,669 100,270,320 203,005,989 203,005,989
2,015 101,082,398 103,601,722 204,684,120 204,684,120
2,016 104,464,735 101,896,921 206,361,656 206,361,656
2,017 102,701,983 105,259,480 207,961,462 207,961,462
##População total - L41 - UFs, Ano 2017:
UF Ano Freq
11 2,017 1,811,839
12 2,017 831,636
13 2,017 4,085,801
14 2,017 522,636
15 2,017 8,382,764
16 2,017 797,722
17 2,017 1,554,228
21 2,017 7,014,348
22 2,017 3,231,359
23 2,017 9,040,630
24 2,017 3,507,003
25 2,017 4,037,660
26 2,017 9,485,368
27 2,017 3,383,891
28 2,017 2,292,150
29 2,017 15,370,668
31 2,017 21,137,689
32 2,017 4,016,356
33 2,017 16,725,007
35 2,017 45,145,291
41 2,017 11,337,028
42 2,017 7,009,229
43 2,017 11,341,048
50 2,017 2,717,181
51 2,017 3,352,612
52 2,017 6,790,874
53 2,017 3,039,444
##Número de óbitos infantis - N_M01 - Brasil:
Ano Ind Freq
2,000 M01_N_SIM 68,211
2,001 M01_N_SIM 62,010
2,002 M01_N_SIM 59,137
2,003 M01_N_SIM 57,764
2,004 M01_N_SIM 54,343
2,005 M01_N_SIM 51,780
2,006 M01_N_SIM 48,341
2,007 M01_N_SIM 45,372
2,008 M01_N_SIM 44,100
2,009 M01_N_SIM 42,664
2,010 M01_N_SIM 39,874
2,011 M01_N_SIM 39,759
2,012 M01_N_SIM 39,123
2,013 M01_N_SIM 38,966
2,014 M01_N_SIM 38,432
2,015 M01_N_SIM 37,503
2,016 M01_N_SIM 36,352
2,017 M01_N_SIM 36,223
##Número de óbitos infantis - N_M01 - UFs, Ano 2017:
UF Ano Freq
11 2,017 353
12 2,017 223
13 2,017 1,292
14 2,017 210
15 2,017 2,136
16 2,017 302
17 2,017 309
21 2,017 1,787
22 2,017 757
23 2,017 1,688
24 2,017 569
25 2,017 764
26 2,017 1,648
27 2,017 675
28 2,017 521
29 2,017 3,081
31 2,017 2,982
32 2,017 596
33 2,017 2,770
35 2,017 6,680
41 2,017 1,633
42 2,017 976
43 2,017 1,425
50 2,017 473
51 2,017 720
52 2,017 1,159
53 2,017 494
##Taxa Mortalidade infantil - M01 - UF, ano 2017:
Ano UF N_obitos_0_anos D_nascidos_vivos taxa_M01
2017 11 353 27503 12.8
2017 12 223 16358 13.6
2017 13 1292 78066 16.6
2017 14 210 11737 17.9
2017 15 2136 138684 15.4
2017 16 302 15399 19.6
2017 17 309 24935 12.4
2017 21 1787 112985 15.8
2017 22 757 48551 15.6
2017 23 1688 127797 13.2
2017 24 569 46222 12.3
2017 25 764 57493 13.3
2017 26 1648 135932 12.1
2017 27 675 50368 13.4
2017 28 521 33867 15.4
2017 29 3081 204096 15.1
2017 31 2982 260959 11.4
2017 32 596 55846 10.7
2017 33 2770 223224 12.4
2017 35 6680 611803 10.9
2017 41 1633 157701 10.4
2017 42 976 98335 9.9
2017 43 1425 141568 10.1
2017 50 473 44747 10.6
2017 51 720 57271 12.6
2017 52 1159 97520 11.9
2017 53 494 44568 11.1
##Taxa Mortalidade infantil - M01 - Brasil:
Ano N_obitos_0_anos D_nascidos_vivos taxa_M01
2000 68211 3206761 21.3
2001 62010 3115474 19.9
2002 59137 3059402 19.3
2003 57764 3038251 19.0
2004 54343 3026548 18.0
2005 51780 3035096 17.1
2006 48341 2944928 16.4
2007 45372 2891328 15.7
2008 44100 2934828 15.0
2009 42664 2881581 14.8
2010 39874 2861868 13.9
2011 39759 2913160 13.6
2012 39123 2905789 13.5
2013 38966 2904027 13.4
2014 38432 2979259 12.9
2015 37503 3017668 12.4
2016 36352 2857800 12.7
2017 36223 2923535 12.4
##### FIM ######