Notebook para criação de tabela de indicadores da PNS - módulo R 2019 Saúde da Mulher

Bibliotecas Utilizadas

In [ ]:
#Lendo pacotes necessários
library(survey)
library(ggplot2)
library(dplyr)
library(tictoc)
library(foreign)
library(forcats)
library(tidyverse)

Carregando microdados da PNS

In [ ]:
#Carregando banco de dados para R versão 3.5.0 ou superior
load("<coloque aqui o caminho para o arquivo dos microdados formato RDATA PNS 2019>")

#conferindo as dimensões (número de linhas e colunas)
dim("<Coloque aqui o nome do arquivo RDATA PNS 2019>")

Definição do peso e filtragem de respondentes do questionário

In [ ]:
#Selecionando registros válidos e calculando peso amostral - summary de verificação
pns2019.1<-  <Coloque aqui o nome do arquivo RDATA>  %>% filter(V0025A==1) 
pns2019.1<-pns2019.1 %>% mutate(peso_morador_selec=((V00291*(94114/168426190))))
pns2019.1<-pns2019.1 %>% filter(!is.na(peso_morador_selec))
summary(pns2019.1$peso_morador_selec)

Criação de variáveis dos indicadores

In [ ]:
#1.Mulheres de 25 a 64 anos que realizaram o exame preventivo para câncer de colo de útero a menos de 3 anos - R001P
pns2019.1 <- pns2019.1 %>% mutate(R001P = ifelse(C006==2 & C008 >= 25 & C008 <= 64 & R00101<=3, 1, 
                                          ifelse (C006==2 & C008 >= 25 & C008 <= 64, 2, NA)))
pns2019.1$R001P<-factor(pns2019.1$R001P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$R001P)
        
#2. Mulheres de 25 a 64 anos que receberam o resultado do exame preventivo de colo de útero em menos de 1 mês - R002P     
pns2019.1 <- pns2019.1 %>% mutate(R002P = ifelse (C006==2 & C008 >= 25 & C008 <= 64 & R00101<=3 & R00601==1, 1,
                                          ifelse (C006==2 & C008 >= 25 & C008 <= 64 & R00101<=3, 2, NA)))
pns2019.1$R002P<-factor(pns2019.1$R002P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$R002P)

#3. Mulheres de 25 a 64 anos que receberam o resultado do exame preventivo de colo de útero em menos de 3 meses -  R003P
pns2019.1 <- pns2019.1 %>% mutate(R003P = ifelse(C006==2 & C008 >= 25 & C008 <= 64 & R00101<=3 & R00601<=2, 1, 
                                          ifelse(C006==2 & C008 >= 25 & C008 <= 64 & R00101<=3, 2, NA)))
pns2019.1$R003P<-factor(pns2019.1$R003P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$R003P)

# 4. Mulheres de 25 a 64 anos que nunca realizaram exame preventivo de colo de útero - R004P
pns2019.1 <- pns2019.1 %>% mutate(R004P = ifelse(C006==2 & C008 >= 25 & C008 <= 64 & R00101==5, 1, 
                                          ifelse (C006==2 & C008 >= 25 & C008 <= 64, 2, NA)))
pns2019.1$R004P<-factor(pns2019.1$R004P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$R004P)

#5. Mulheres de 25 anos ou mais que realizaram cirurgia para retirada do útero - R005P
pns2019.1 <- pns2019.1 %>% mutate(R005P = if_else(C006==2 & C008 >= 25  & R010==1, 1, 
                                          if_else (C006==2 & C008 >= 25, 2, 2,2),2))
pns2019.1$R005P<-factor(pns2019.1$R005P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$R005P)

#6. Mulheres de 50 a 69 anos que realizaram exame de mamografia a menos de 2 anos -  R006P
pns2019.1 <- pns2019.1 %>% mutate(R006P = ifelse(C006==2 & C008>=50 & C008<=69 & R01701<=2 & R014==1 & R015==1, 1, 
                                          ifelse(C006==2 & C008>=50 & C008<=69, 2, NA)))
pns2019.1$R006P<-factor(pns2019.1$R006P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$R006P)

#7. Mulheres de 50 a 69 anos que receberam o resultado do exame de mamografia em menos de 1 mês - R007P
pns2019.1 <- pns2019.1 %>% mutate(R007P = ifelse(C006==2 & C008 >= 50 & C008 <= 69  & R01701<=2 & R02101==1 & R014==1 & R015==1, 1, 
                                          ifelse(C006==2 & C008 >= 50 & C008 <= 69, 2, NA))) # &
pns2019.1$R007P<-factor(pns2019.1$R007P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$R007P)

#8. Mulheres de 50 a 69 anos que receberam o resultado do exame de mamografia em menos de 3 meses -  R008P
pns2019.1 <- pns2019.1 %>% mutate(R008P = ifelse(C006==2 & C008 >= 50 & C008 <= 69 & R01701<=2 & R02101<=2 & R014==1 & R015==1, 1, 
                                          ifelse(C006==2 & C008 >= 50 & C008 <= 69, 2, NA)))  
pns2019.1$R008P<-factor(pns2019.1$R008P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$R008P)

# 9. Mulheres de 50 a 69 anos que nunca realizaram exame de mamografia" - R009P
pns2019.1 <- pns2019.1 %>% mutate(R009P = ifelse(C006==2 & C008 >= 50 & C008 <= 69 & (R014==2 | R015==2), 1, 
                                          ifelse (C006==2 & C008 >= 50 & C008 <= 69, 2, NA)))
pns2019.1$R009P<-factor(pns2019.1$R009P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$R009P)

#10. Mulheres de 40 a 49 anos que realizaram exame de mamografia no último ano - R010P
pns2019.1 <- pns2019.1 %>% mutate(R010P = ifelse(C006==2 & C008 >= 40 & C008 <= 49 & R01701==1 & R014==1 & R015==1, 1, 
                                          ifelse(C006==2 & C008 >= 40 & C008 <= 49, 2, 2)))
pns2019.1$R010P<-factor(pns2019.1$R010P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$R010P)

Definições de abrangências

Situação urbana ou rural

In [ ]:
#Situação Urbano ou Rural
pns2019.1 <- pns2019.1 %>% rename(Sit_Urbano_Rural=V0026)
pns2019.1$Sit_Urbano_Rural<-factor(pns2019.1$Sit_Urbano_Rural, levels=c(1,2), labels=c("urbano", "rural"))
summary(pns2019.1$Sit_Urbano_Rural)

UF

In [ ]:
#Estados - UFs
pns2019.1 <- pns2019.1 %>% rename(Unidades_da_Federacao=V0001)
pns2019.1$Unidades_da_Federacao<-factor(pns2019.1$Unidades_da_Federacao, levels=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),
                                       label=c("Rondônia","Acre","Amazonas","Roraima","Pará","Amapá","Tocantins","Maranhão","Piauí","Ceará",
                                        "Rio Grande do Norte","Paraíba","Pernambuco","Alagoas","Sergipe","Bahia",
                                        "Minas Gerais","Espírito Santo","Rio de Janeiro","São Paulo",
                                        "Paraná","Santa Catarina","Rio Grande do Sul", 
                                        "Mato Grosso do Sul","Mato Grosso","Goiás","Distrito Federal"))
summary(pns2019.1$Unidades_da_Federacao)

Grandes Regiões

In [ ]:
#Grandes Regiões
pns2019.1 <- pns2019.1 %>% 
  mutate(GrandesRegioes = fct_collapse(Unidades_da_Federacao, 
                                          `Norte` = c("Rondônia","Acre","Amazonas","Roraima","Pará", "Amapá","Tocantins"),
                                          `Nordeste` = c("Maranhão", "Piauí", "Ceará", "Rio Grande do Norte", "Paraíba","Pernambuco", "Alagoas","Sergipe","Bahia"),
                                          `Sudeste` = c("Minas Gerais", "Espírito Santo","Rio de Janeiro", "São Paulo"), 
                                          `Sul` = c("Paraná", "Santa Catarina", "Rio Grande do Sul"),
                                          `Centro-Oeste`= c("Mato Grosso do Sul","Mato Grosso", "Goiás", "Distrito Federal")))
summary(pns2019.1$GrandesRegioes)

Capital

In [ ]:
#Capital
pns2019.1<- pns2019.1 %>% mutate(Capital= fct_collapse(Unidades_da_Federacao,
                                        `Porto Velho`= "Rondônia", 
                                        `Boa Vista`= "Roraima",              
                                        `Rio Branco`= "Acre", 
                                        `Manaus` = "Amazonas",
                                        `Belém` = "Pará" ,
                                        `Macapá`= "Amapá",
                                        `Palmas` = "Tocantins",
                                        `São Luís` = "Maranhão",
                                        `Teresina`= "Piauí" ,
                                        `Fortaleza`= "Ceará",
                                        `Natal`= "Rio Grande do Norte",
                                        `João Pessoa`= "Paraíba",
                                        `Recife`= "Pernambuco",
                                        `Maceió`= "Alagoas",
                                        `Aracaju`= "Sergipe",
                                        `Salvador`= "Bahia",
                                        `Belo Horizonte`= "Minas Gerais",
                                        `Vitória`= "Espírito Santo",
                                        `Rio de Janeiro`= "Rio de Janeiro",
                                        `São Paulo`= "São Paulo",
                                        `Curitiba`= "Paraná",
                                        `Florianópolis`= "Santa Catarina",
                                        `Porto Alegre`= "Rio Grande do Sul",
                                        `Campo Grande`=  "Mato Grosso do Sul",
                                        `Cuiabá`= "Mato Grosso",
                                        `Goiânia` = "Goiás",
                                        `Brasília`= "Distrito Federal"))
summary(pns2019.1$Capital)

Faixa Etária

In [ ]:
#Faixas Etárias

# fx_idade_2564.

pns2019.1 <-  pns2019.1 %>% mutate(fx_idade_2564=cut(C008,
  breaks = c(25,40, 50, 65),
  labels = c("25 a 39 anos", "40 a 49 anos", "50 a 64 anos"), 
  ordered_result = TRUE, right = FALSE))
summary(pns2019.1$fx_idade_2564) 

# fx_idade_25

pns2019.1 <-  pns2019.1 %>% mutate(fx_idade_25=cut(C008,
  breaks = c(25,40, 50, 60,70,Inf ),
  labels = c("25 a 39 anos", "40 a 49 anos", "50 a 59 anos", "60 a 69 anos",  "70 anos ou mais"), 
  ordered_result = TRUE, right = FALSE))
summary(pns2019.1$fx_idade_25) 

#*fx_idade_5069

pns2019.1 <-  pns2019.1 %>% mutate(fx_idade_5069=cut(C008,
  breaks = c(50,60,70),
  labels = c("50 a 59 anos", "60 a 69 anos"), 
  ordered_result = TRUE, right = FALSE))
summary(pns2019.1$fx_idade_5069)

# fx_idade_4049

pns2019.1 <-  pns2019.1 %>% mutate(fx_idade_4049=cut(C008,
  breaks = c(40,45,50),
  labels = c("40 a 44 anos", "45 a 49 anos"), 
  ordered_result = TRUE, right = FALSE))
summary(pns2019.1$fx_idade_4049)

Raça

In [ ]:
#Raça
pns2019.1 <- pns2019.1 %>% mutate(Raca= ifelse(C009==1, 1, 
                        ifelse(C009==2, 2, 
                            ifelse(C009==4, 3, 9))))

pns2019.1$Raca<-factor(pns2019.1$Raca, levels=c(1,2,3),labels=c("Branca", "Preta", "Parda"))

summary(pns2019.1$Raca)

Renda per capta

In [ ]:
#Rendimento domiciliar per capita
pns2019.1 <- pns2019.1 %>% mutate(rend_per_capita = ifelse(VDF004 %in% 1:2, 1, 
                        ifelse(VDF004%in% 3, 2, 
                        ifelse(VDF004%in% 4, 3,
                        ifelse(VDF004%in% 5, 4, 
                        ifelse(is.na(VDF004)==TRUE, NA_real_, 5))))))

pns2019.1$rend_per_capita<-factor(pns2019.1$rend_per_capita, levels=c(1,2,3,4,5), labels=c("Até 1/2 SM","1/2 até 1 SM","1 até 2 SM",
                                                                                   "2 até 3 SM","Mais de 3 SM"))
summary(pns2019.1$rend_per_capita)

Escolaridade

In [ ]:
# Escolaridade
pns2019.1 <- pns2019.1 %>% mutate(gescol = ifelse(VDD004A %in% 1:2, 1, 
                        ifelse(VDD004A%in% 3:4, 2, 
                        ifelse(VDD004A%in% 5:6, 3,4
                        ))))

pns2019.1$gescol<-factor(pns2019.1$gescol, levels=c(1,2,3,4), 
                                  labels=c("Fundamental incompleto ou equivalente","Médio incompleto ou equivalente",
                                           "Superior incompleto ou equivalente","Superior completo"))
summary(pns2019.1$gescol)

Criando indicadores

Filtrando base de indicadores

In [ ]:
#Selecionando variáveis para cálculo de indicadores no survey
pns2019Rsurvey<- pns2019.1 %>% select("V0024","UPA_PNS","peso_morador_selec", "R001P", "R002P", "R003P", "R004P", "R005P", "R006P", "R007P", "R008P", "R009P", "R010P",  
                                     "C008","C006","C009","V0031","R00101", "Sit_Urbano_Rural","Unidades_da_Federacao", "GrandesRegioes",
                                     "Capital","fx_idade_2564", "fx_idade_25", "fx_idade_5069", "fx_idade_4049", "Raca","rend_per_capita","gescol")
summary(pns2019Rsurvey)

Exporta tabela filtrada com os dados específicos - Módulo R 2019

In [ ]:
#Salvando csv para cálculo de indicadores no survey
diretorio_saida <- "<coloque aqui o diretório>"
write.csv(pns2019Rsurvey, file.path(diretorio_saida, "pns2019Rsurvey.csv"))

Cria plano amostral complexo

In [ ]:
#survey design R001P & R004P
desPNSR=svydesign(id=~UPA_PNS, strat=~V0024, weight=~peso_morador_selec, nest=TRUE, data=pns2019Rsurvey)
desPNSR_2564=subset(desPNSR, C008>=25 & C008<=64 & C006==2)
desPNSRC_2564=subset(desPNSR, C008>=25 & C008<=64 & C006==2 & V0031==1)
desPNSRR_2564=subset(desPNSR, C008>=25 & C008<=64 & C006==2 & !is.na(Raca))
In [ ]:
#survey design R002P & R003P 
desPNSR_2564_2=subset(desPNSR, C008>=25 & C008<=64 & C006==2 & R00101<=3)
desPNSRC_2564_2=subset(desPNSR, C008>=25 & C008<=64 & C006==2 & V0031==1 & R00101<=3)
desPNSRR_2564_2=subset(desPNSR, C008>=25 & C008<=64 & C006==2 & !is.na(Raca) & R00101<=3)
In [ ]:
#survey design R005P
desPNSR_25=subset(desPNSR, C008>=25 & C006==2)
desPNSRC_25=subset(desPNSR, C008>=25 & C006==2 & V0031==1)
desPNSRR_25=subset(desPNSR, C008>=25 & C006==2 & !is.na(Raca))
In [ ]:
#survey design R006P, R007P, R008P & R009P 
desPNSR_5069=subset(desPNSR,  C008>=50 & C008<=69 & C006==2) 
desPNSRC_5069=subset(desPNSR, C008>=50 & C008<=69 & C006==2  & V0031==1)
desPNSRR_5069=subset(desPNSR, C008>=50 & C008<=69 & C006==2  & !is.na(Raca))
In [ ]:
#survey design R010P 
desPNSR_4049=subset(desPNSR,  C008>=40 & C008<=49 &  C006==2)
desPNSRC_4049=subset(desPNSR, C008>=40 & C008<=49 & C006==2  & V0031==1)
desPNSRR_4049=subset(desPNSR, C008>=40 & C008<=49 & C006==2  & !is.na(Raca))

Criação da tabela de indicadores

Essa tabela é responsável por unir os indicadores no formato do painel de indicadores

In [ ]:
matrizIndicadores = data.frame()

Definição de variáveis para iteração dos indicadores

In [ ]:
ListaIndicadores = c(~R001P,~R002P,~R003P,~R004P, ~R005P, ~R006P, ~R007P, ~R008P, ~R009P, ~R010P) 
ListaIndicadoresTexto = c( "R001P","R002P", "R003P", "R004P", "R005P", "R006P", "R007P", "R008P", "R009P", "R010P" ) 
ListaTotais = c('Brasil','Capital')
Ano <- "2019"
In [ ]:
ListaDominiosR = c(~Raca,~rend_per_capita,~fx_idade_2564,~Sit_Urbano_Rural,~Unidades_da_Federacao,~GrandesRegioes,~Capital,~gescol)
ListaDominiosTextoR = c("raça","rend_per_capita","fx_idade_2564","urb_rur","uf","região","capital","gescol")
In [ ]:
ListaDominiosR005P = c(~Raca,~rend_per_capita,~fx_idade_25,~Sit_Urbano_Rural,~Unidades_da_Federacao,~GrandesRegioes,~Capital,~gescol)
ListaDominiosTextoR005P = c("raça","rend_per_capita","fx_idade_25","urb_rur","uf","região","capital","gescol")
In [ ]:
ListaDominiosR006P = c(~Raca,~rend_per_capita,~fx_idade_5069,~Sit_Urbano_Rural,~Unidades_da_Federacao,~GrandesRegioes,~Capital,~gescol)
ListaDominiosTextoR006P = c("raça","rend_per_capita","fx_idade_5069","urb_rur","uf","região","capital","gescol")
In [ ]:
ListaDominiosR010P = c(~Raca,~rend_per_capita,~fx_idade_4049,~Sit_Urbano_Rural,~Unidades_da_Federacao,~GrandesRegioes,~Capital,~gescol)
ListaDominiosTextoR010P = c("raça","rend_per_capita","fx_idade_4049","urb_rur","uf","região","capital","gescol")

Preenchendo a tabela de indicadores

Essas iterações rodam por indicador, abrangência e por design

In [ ]:
#Cálculo dos indicadores usando o pacote survey 
i <- 0
#Para cada indicador
for( indicador in ListaIndicadores){
    i <- i + 1
    j <- 1
    if (ListaIndicadoresTexto[i]== "R005P"){
        ListaDominios<-ListaDominiosR005P
        ListaDominiosTexto<-ListaDominiosTextoR005P
    } else if (ListaIndicadoresTexto[i]== "R002P" | ListaIndicadoresTexto[i]=="R003P"){
        ListaDominios<-ListaDominiosR
        ListaDominiosTexto<-ListaDominiosTextoR
    } else if (ListaIndicadoresTexto[i]== "R006P" | ListaIndicadoresTexto[i]=="R007P" | ListaIndicadoresTexto[i]=="R008P" | ListaIndicadoresTexto[i]=="R009P"){
        ListaDominios<-ListaDominiosR006P
        ListaDominiosTexto<-ListaDominiosTextoR006P
    } else if (ListaIndicadoresTexto[i]== "R010P"){
        ListaDominios<-ListaDominiosR010P
        ListaDominiosTexto<-ListaDominiosTextoR010P
    } else {
        ListaDominios<-ListaDominiosR
        ListaDominiosTexto<-ListaDominiosTextoR
    }
            
    #Para cada dominio
    for (dominio in ListaDominios){
        #design especifico para capital que é subconjunto do dataframe total
        if (ListaDominiosTexto[j]=="capital"){
            #designs especificos por variavel que são subconjuntos do dataset total
            if (ListaIndicadoresTexto[i]== "R005P"){
                dataframe_indicador<-svyby( indicador , dominio , desPNSRC_25 , svymean,vartype= c("ci","cv"))
            }  else if (ListaIndicadoresTexto[i]== "R002P" | ListaIndicadoresTexto[i]== "R003P"){
                dataframe_indicador<-svyby( indicador , dominio , desPNSRC_2564_2 , svymean,vartype= c("ci","cv"))
            } else if (ListaIndicadoresTexto[i]== "R006P" | ListaIndicadoresTexto[i]== "R007P" | ListaIndicadoresTexto[i]=="R008P" | ListaIndicadoresTexto[i]=="R009P"){
                dataframe_indicador<-svyby( indicador , dominio , desPNSRC_5069 , svymean,vartype= c("ci","cv"))
            } else if (ListaIndicadoresTexto[i]== "R010P"){
                dataframe_indicador<-svyby( indicador , dominio , desPNSRC_4049 , svymean,vartype= c("ci","cv"))
            } else {
                dataframe_indicador<-svyby( indicador , dominio , desPNSRC_2564 , svymean,vartype= c("ci","cv"))
            }
            
            #Uso design do subconjunto para raça/cor que inclui preta,branca e parda as outras 
            #não possuiam dados suficientes para os dominios dos indicadores
        } else if (ListaDominiosTexto[j]=="raça"){
            if (ListaIndicadoresTexto[i]== "R005P"){
                dataframe_indicador<-svyby( indicador , dominio , desPNSRR_25 , svymean,vartype= c("ci","cv"))
            } else if (ListaIndicadoresTexto[i]== "R002P" | ListaIndicadoresTexto[i]== "R003P"){
                dataframe_indicador<-svyby( indicador , dominio , desPNSRR_2564_2 , svymean,vartype= c("ci","cv"))
            } else if (ListaIndicadoresTexto[i]== "R006P" | ListaIndicadoresTexto[i]== "R007P" | ListaIndicadoresTexto[i]=="R008P" | ListaIndicadoresTexto[i]=="R009P"){
                dataframe_indicador<-svyby( indicador , dominio , desPNSRR_5069 , svymean,vartype= c("ci","cv"))
            } else if (ListaIndicadoresTexto[i]== "R010P"){
                dataframe_indicador<-svyby( indicador , dominio , desPNSRR_4049 , svymean,vartype= c("ci","cv"))
            } else {
                dataframe_indicador<-svyby( indicador , dominio , desPNSRR_2564 , svymean,vartype= c("ci","cv"))
            }
            
            #design geral para o subconjunto maior que 25 anos    
        } else if (ListaIndicadoresTexto[i]== "R005P"){
            dataframe_indicador<-svyby( indicador , dominio , desPNSR_25 , svymean,vartype= c("ci","cv"))
        } else if (ListaIndicadoresTexto[i]== "R002P" | ListaIndicadoresTexto[i]== "R003P"){
            dataframe_indicador<-svyby( indicador , dominio , desPNSR_2564_2 , svymean,vartype= c("ci","cv"))
        } else if (ListaIndicadoresTexto[i]== "R006P" | ListaIndicadoresTexto[i]== "R007P" | ListaIndicadoresTexto[i]=="R008P" | ListaIndicadoresTexto[i]=="R009P"){
            dataframe_indicador<-svyby( indicador , dominio , desPNSR_5069 , svymean,vartype= c("ci","cv"))
        } else if (ListaIndicadoresTexto[i]== "R010P"){
            dataframe_indicador<-svyby( indicador , dominio , desPNSR_4049 , svymean,vartype= c("ci","cv"))
        } else {
            dataframe_indicador<-svyby( indicador , dominio , desPNSR_2564 , svymean,vartype= c("ci","cv"))
        }
        
        
        #União do dataframe de indicadores no formato do painel disponibilizado para PNS
               
        dataframe_indicador<-data.frame(dataframe_indicador)
               
        colnames(dataframe_indicador) <- c("abr_nome","Sim","Nao","LowerS","LowerN","UpperS","UpperN","cvS","cvN")
        dataframe_indicador$Indicador <- ListaIndicadoresTexto[i]
        dataframe_indicador$abr_tipo <- ListaDominiosTexto[j]
        dataframe_indicador$Ano <- Ano
        dataframe_indicador <- dataframe_indicador %>% select("abr_tipo","abr_nome","Ano","Indicador","Sim","LowerS","UpperS","cvS")
        matrizIndicadores <-rbind(matrizIndicadores,dataframe_indicador)
        j <- j + 1
   } 
}

Criando a tabela pela abrangência total

In [ ]:
matriz_totais <- data.frame()

Preenchendo a tabela com as abrangencia Brasil e total das capitais

In [ ]:
i = 0
#para cada indicador
for(indicador in ListaIndicadores){
    i <- i + 1
    #para os totais Brasil e total das capitais
    for(total in ListaTotais){
        dataframe_indicador <- data.frame()
        dataframe_indicador_S <- data.frame()
        #Uso do design que é subconjunto do dataset para cada Capital
        if (total == "Capital"){
            #Indicadores que são subconjunto do dataset total
            if (ListaIndicadoresTexto[i]== "R005P"){
                dataframe_indicador <- svymean(indicador,desPNSRC_25)
            } else if (ListaIndicadoresTexto[i]== "R002P" | ListaIndicadoresTexto[i]== "R003P"){
                dataframe_indicador <- svymean(indicador,desPNSRC_2564_2)
            } else if (ListaIndicadoresTexto[i]== "R006P" | ListaIndicadoresTexto[i]== "R007P" | ListaIndicadoresTexto[i]=="R008P" | ListaIndicadoresTexto[i]=="R009P"){
                dataframe_indicador <- svymean(indicador,desPNSRC_5069)
            } else if (ListaIndicadoresTexto[i]== "R010P"){
                dataframe_indicador <- svymean(indicador,desPNSRC_4049)
            } else {
                dataframe_indicador <- svymean(indicador,desPNSRC_2564)
            }
            
        } else if (ListaIndicadoresTexto[i]== "R005P"){
            dataframe_indicador <- svymean(indicador,desPNSR_25)
        } else if (ListaIndicadoresTexto[i]== "R002P" | ListaIndicadoresTexto[i]== "R003P"){
            dataframe_indicador <- svymean(indicador,desPNSR_2564_2)
        } else if (ListaIndicadoresTexto[i]== "R006P" | ListaIndicadoresTexto[i]== "R007P" | ListaIndicadoresTexto[i]=="R008P" | ListaIndicadoresTexto[i]=="R009P"){
            dataframe_indicador <- svymean(indicador,desPNSR_5069)
        } else if (ListaIndicadoresTexto[i]== "R010P"){
            dataframe_indicador <- svymean(indicador,desPNSR_4049)
        } else {
            dataframe_indicador <- svymean(indicador,desPNSR_2564)
        }
                
        intervalo_confianca <- confint(dataframe_indicador)
        coeficiente_variacao <- cv(dataframe_indicador)
        dataframe_indicador <- cbind(data.frame(dataframe_indicador),data.frame(intervalo_confianca))
        dataframe_indicador <- cbind(data.frame(dataframe_indicador),data.frame(coeficiente_variacao))
        
        dataframe_indicador <- dataframe_indicador %>% 
                               select('mean','X2.5..','X97.5..',coeficiente_variacao) 
        dataframe_indicador_S <- dataframe_indicador %>% 
                                 slice(1)
                
        colnames(dataframe_indicador_S) <- c('Sim','LowerS','UpperS', 'cvS')
        dataframe_indicador_S$Indicador <- ListaIndicadoresTexto[i]
        
        dataframe_indicador_S$abr_tipo <- "total"
        dataframe_indicador_S$abr_nome <- total
        dataframe_indicador_S$Ano <- Ano 
        
        dataframe_indicador_S <- dataframe_indicador_S %>% 
                             select("abr_tipo","abr_nome","Ano","Indicador","Sim","LowerS","UpperS",'cvS')
        
        matriz_totais <-rbind(matriz_totais,dataframe_indicador_S)
    }
}

Unindo tabela de indicadores e de totais

In [ ]:
matrizIndicadores<-rbind(matrizIndicadores,matriz_totais)

Visualizando tabela de indicadores

In [ ]:
matrizIndicadores

Exportando tabela de indicadores calculados - Módulo R 2019

In [ ]:
diretorio_saida <- "<coloque aqui o diretório>"
write.table(matrizIndicadores,file=paste0(diretorio_saida,"Indicadores_2019R_R.csv"),sep = ";",dec = ",",row.names = FALSE)