taxa.de.mortalidade.infantil <- function(muni = MUNI,d.sim = dados.sim, d.sinasc = dados.sinasc, nivel, categoria){
      tempo.inicial = Sys.time()
      categoria.valida = categoria %in% c("<1","neonatal","<5","neonatal.precoce",
                                          "neonatal.tardia","pos.neonatal")
      nivel.valido = nivel %in% c("UF","MUNI", "GRS", "RO")
      if(nivel.valido != TRUE){
            cat("\n!!! O nível", nivel, "não é válido. Escolha outro nível !!!\n")
            cat("*** Os níveis válidos são: UF, MUNI, GRS e RO\n\n")
      }
      if(categoria.valida != TRUE){
            cat("\n!!! A categoria", categoria, "não é válida. Escolha outra categoria !!!\n")
            cat("*** As categorias válidas são: <1, <5, neonatal, neonatal.precoce,
                neonatal.tardia e pos.neonatal\n\n")
      }
      ano.maximo.sim = max(as.vector(substr(dados.sim$DTOBITO,5,8)))
      ano.maximo.sinasc = max(as.vector(dados.sinasc$DATA))
      if(ano.maximo.sim == ano.maximo.sinasc){
            ano.maximo <- ano.maximo.sim
      }else{
            ano.maximo <- ano.maximo.sim - 1
      } 
      if(nivel == "MUNI" && categoria == "<1"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in municipios){
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES == i &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 311))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                       MUNICIPIO == i &
                                                       as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)    
            }
            write.table(cbind(muni,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Menor que 1 ano) - Municípios - RIPSA.csv")
      }
      if(nivel == "MUNI" && categoria == "<5"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in municipios){
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES == i &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 404))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                       MUNICIPIO == i &
                                                       as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)    
            }
            write.table(cbind(muni,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Menor que 5 ano) - Municípios - RIPSA.csv")
      }
      if(nivel == "MUNI" && categoria == "neonatal"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in municipios){
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES == i &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 227))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                         MUNICIPIO == i &
                                                         as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)    
            }
            write.table(cbind(muni,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal) - Municípios - RIPSA.csv")
      }
      if(nivel == "MUNI" && categoria == "neonatal.precoce"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in municipios){
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES == i &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 206))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                       MUNICIPIO == i &
                                                       as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            write.table(cbind(muni,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal Precoce) - Municípios - RIPSA.csv")
      }
      if(nivel == "MUNI" && categoria == "neonatal.tardia"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in municipios){
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES == i &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 207 &
                                                     as.vector(IDADE) <= 227))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                         MUNICIPIO == i &
                                                         as.vector(DATA) == j))[1]
                       v = v + 1  
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)
                  
            }
            write.table(cbind(muni,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal Tardia) - Municípios - RIPSA.csv")
      }
      if(nivel == "MUNI" && categoria == "pos.neonatal"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in municipios){
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES == i &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 228 &
                                                     as.vector(IDADE) <= 311))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                       MUNICIPIO == i &
                                                       as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            write.table(cbind(muni,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Pós-Neonatal) - Municípios - RIPSA.csv")
      }
      if(nivel == "UF" && categoria == "<1"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            numero.obitos <- vector()
            numero.nascimentos <- vector()
            v = 1
            for(j in 2006:ano.maximo){
                  numero.obitos[v] = dim(subset(d.sim,
                                                substr(DTOBITO,5,8) == j &
                                                as.vector(IDADE) >= 0 &
                                                as.vector(IDADE) <= 311 &
                                                as.vector(CODESTRES) == 25))[1]
                  numero.nascimentos[v] = dim(subset(d.sinasc,
                                                     as.vector(DATA) == j &
                                                     as.vector(CODESTRES) == 25))[1]
                  v = v + 1
                  serie.estado = round((numero.obitos/numero.nascimentos)*1000,2)    
            }
            anos.serie = 2006:ano.maximo
            write.table(cbind(anos.serie,serie.estado), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Menor que 1 ano) - Estado - RIPSA.csv")
      }
      if(nivel == "UF" && categoria == "<5"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            numero.obitos <- vector()
            numero.nascimentos <- vector()
            v = 1
            for(j in 2006:ano.maximo){
                  numero.obitos[v] = dim(subset(d.sim,
                                                substr(DTOBITO,5,8) == j &
                                                as.vector(IDADE) >= 0 &
                                                as.vector(IDADE) <= 404 &
                                                as.vector(CODESTRES) == 25))[1]
                  numero.nascimentos[v] = dim(subset(d.sinasc,
                                                     as.vector(DATA) == j &
                                                     as.vector(CODESTRES) == 25))[1]
                  v = v + 1
                  serie.estado = round((numero.obitos/numero.nascimentos)*1000,2)    
            }
            anos.serie = 2006:ano.maximo
            write.table(cbind(anos.serie,serie.estado), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Menor que 5 anos) - Estado - RIPSA.csv")
      }
      if(nivel == "UF" && categoria == "neonatal"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            numero.obitos <- vector()
            numero.nascimentos <- vector()
            v = 1
            for(j in 2006:ano.maximo){
                  numero.obitos[v] = dim(subset(d.sim,
                                                substr(DTOBITO,5,8) == j &
                                                as.vector(IDADE) >= 0 &
                                                as.vector(IDADE) <= 227 &
                                                as.vector(CODESTRES) == 25))[1]
                  numero.nascimentos[v] = dim(subset(d.sinasc,
                                                     as.vector(DATA) == j &
                                                     as.vector(CODESTRES) == 25))[1]
                  v = v + 1
                  serie.estado = round((numero.obitos/numero.nascimentos)*1000,2)    
            }
            anos.serie = 2006:ano.maximo
            write.table(cbind(anos.serie,serie.estado), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal) - Estado - RIPSA.csv")
      }      
      if(nivel == "UF" && categoria == "neonatal.precoce"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            numero.obitos <- vector()
            numero.nascimentos <- vector()
            v = 1
            for(j in 2006:ano.maximo){
                  numero.obitos[v] = dim(subset(d.sim,
                                                substr(DTOBITO,5,8) == j &
                                                as.vector(IDADE) >= 0 &
                                                as.vector(IDADE) <= 206 &
                                                as.vector(CODESTRES) == 25))[1]
                  numero.nascimentos[v] = dim(subset(d.sinasc,
                                                     as.vector(DATA) == j &
                                                     as.vector(CODESTRES) == 25))[1]
                  v = v + 1
                  serie.estado = round((numero.obitos/numero.nascimentos)*1000,2)    
            }
            anos.serie = 2006:ano.maximo
            write.table(cbind(anos.serie,serie.estado), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal Precoce) - Estado - RIPSA.csv")
      }     
      if(nivel == "UF" && categoria == "neonatal.tardia"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            numero.obitos <- vector()
            numero.nascimentos <- vector()
            v = 1
            for(j in 2006:ano.maximo){
                  numero.obitos[v] = dim(subset(d.sim,
                                                substr(DTOBITO,5,8) == j &
                                                as.vector(IDADE) >= 207 &
                                                as.vector(IDADE) <= 227 &
                                                as.vector(CODESTRES) == 25))[1]
                  numero.nascimentos[v] = dim(subset(d.sinasc,
                                                     as.vector(DATA) == j &
                                                     as.vector(CODESTRES) == 25))[1]
                  v = v + 1
                  serie.estado = round((numero.obitos/numero.nascimentos)*1000,2)    
            }
            anos.serie = 2006:ano.maximo
            write.table(cbind(anos.serie,serie.estado), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal Tardia) - Estado - RIPSA.csv")
      }
      if(nivel == "UF" && categoria == "pos.neonatal"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 223)
            numero.obitos <- vector()
            numero.nascimentos <- vector()
            v = 1
            for(j in 2006:ano.maximo){
                  numero.obitos[v] = dim(subset(d.sim,
                                                substr(DTOBITO,5,8) == j &
                                                as.vector(IDADE) >= 228 &
                                                as.vector(IDADE) <= 311 &
                                                as.vector(CODESTRES) == 25))[1]
                  numero.nascimentos[v] = dim(subset(d.sinasc,
                                                     as.vector(DATA) == j &
                                                     as.vector(CODESTRES) == 25))[1]
                  v = v + 1
                  serie.estado = round((numero.obitos/numero.nascimentos)*1000,2)    
            }
            anos.serie = 2006:ano.maximo
            write.table(cbind(anos.serie,serie.estado), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Pós-Neonatal) - Estado - RIPSA.csv")
      }      

      if(nivel == "GRS" && categoria == "<1"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 12)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:12)){
                      
                       regional = subset(muni,
                                         GRS == i)
                       codigo.regional = as.vector(regional[,3])
                               
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 311))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:12
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Menor que 1 ano) - GRS - RIPSA.csv")
      }
      if(nivel == "GRS" && categoria == "<5"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 12)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:12)){
                      
                       regional = subset(muni,
                                         GRS == i)
                       codigo.regional = as.vector(regional[,3])
                               
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 404))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:12
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Menor que 5 anos) - GRS - RIPSA.csv")
      }
      if(nivel == "GRS" && categoria == "neonatal"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 12)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:12)){
                      
                       regional = subset(muni,
                                         GRS == i)
                       codigo.regional = as.vector(regional[,3])
                               
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 227))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:12
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal) - GRS - RIPSA.csv")
      }
      if(nivel == "GRS" && categoria == "neonatal.precoce"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 12)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:12)){
                      
                       regional = subset(muni,
                                         GRS == i)
                       codigo.regional = as.vector(regional[,3])
                               
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 206))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:12
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal Precoce) - GRS - RIPSA.csv")
      }
      if(nivel == "GRS" && categoria == "neonatal.tardia"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 12)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:12)){
                      
                       regional = subset(muni,
                                         GRS == i)
                       codigo.regional = as.vector(regional[,3])
                               
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 207 &
                                                     as.vector(IDADE) <= 227))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:12
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal Tardia) - GRS - RIPSA.csv")
      }
      if(nivel == "GRS" && categoria == "pos.neonatal"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 12)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:12)){
                      
                       regional = subset(muni,
                                         GRS == i)
                       codigo.regional = as.vector(regional[,3])
                               
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 228 &
                                                     as.vector(IDADE) <= 311))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:12
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Pós-Neonatal) - GRS - RIPSA.csv")
      }
      if(nivel == "RO" && categoria == "<1"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 14)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:14)){
                       regional = subset(muni,
                                         GRO == i)
                       codigo.regional = as.vector(regional[,3])
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 311))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:14
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Menor que 1 ano) - RO - RIPSA.csv")
      }
      if(nivel == "RO" && categoria == "<5"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 14)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:14)){
                       regional = subset(muni,
                                         GRO == i)
                       codigo.regional = as.vector(regional[,3])
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 404))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:14
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Menor que 5 anos) - RO - RIPSA.csv")
      }
      if(nivel == "RO" && categoria == "neonatal"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 14)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:14)){
                       regional = subset(muni,
                                         GRO == i)
                       codigo.regional = as.vector(regional[,3])
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 227))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:14
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal) - RO - RIPSA.csv")
      }
      if(nivel == "RO" && categoria == "neonatal.precoce"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 14)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:14)){
                       regional = subset(muni,
                                         GRO == i)
                       codigo.regional = as.vector(regional[,3])
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 0 &
                                                     as.vector(IDADE) <= 206))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:14
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal Precoce) - RO - RIPSA.csv")
      }
      if(nivel == "RO" && categoria == "neonatal.tardia"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 14)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:14)){
                       regional = subset(muni,
                                         GRO == i)
                       codigo.regional = as.vector(regional[,3])    
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 207 &
                                                     as.vector(IDADE) <= 227))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:14
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Neonatal Tardia) - RO - RIPSA.csv")
      }
      if(nivel == "RO" && categoria == "pos.neonatal"){
            j = NULL
            coluna = 0
            matriz.indicador = matrix(, ncol = length(2006:ano.maximo), nrow = 14)
            for(j in 2006:ano.maximo){
                  i = NULL
                  numero.obitos <- vector()
                  numero.nascimentos <- vector()
                  v = 1
                  for(i in c(1:14)){
                       regional = subset(muni,
                                         GRO == i)
                       codigo.regional = as.vector(regional[,3])              
                       numero.obitos[v] = dim(subset(d.sim,
                                                     CODMUNRES %in% codigo.regional == TRUE &
                                                     substr(DTOBITO,5,8) == j &
                                                     as.vector(IDADE) >= 228 &
                                                     as.vector(IDADE) <= 311))[1]
                       numero.nascimentos[v] = dim(subset(d.sinasc,
                                                          MUNICIPIO %in% codigo.regional == TRUE &
                                                          as.vector(DATA) == j))[1]
                       v = v + 1
                  }
                  coluna = coluna + 1
                  matriz.indicador[,coluna] = round((numero.obitos/numero.nascimentos)*1000,2)     
            }
            regionais = 1:14
            write.table(cbind(regionais,matriz.indicador), col.names = TRUE, sep = ";",
            quote = TRUE, file = "Taxa de mortalidade infantil (Pós-Neonatal) - RO - RIPSA.csv")
      }
      tempo.final = Sys.time()
      if(nivel.valido == TRUE && categoria.valida == TRUE) cat("\n--->>> OK\n")
      else cat("\n--->>> ERRO\n")
      return(tempo.final - tempo.inicial)
}