Notebook para criação de tabela de indicadores da PNS - módulo Q 2019 Doenças Crônicas

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>")

#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 para o módulo P 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 [ ]:
#Pressão arterial nunca aferida - Q001P
pns2019.1 <- pns2019.1 %>% mutate(Q001P = ifelse(Q00101 == 6,1,2))
pns2019.1$Q001P<-factor(pns2019.1$Q001P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q001P)

#Diagnóstico médico autorreferido de hipertensão arterial  - Q002P 
pns2019.1 <- pns2019.1 %>% mutate(Q002P = if_else(Q00202==1 & C006==2,2,
                                          if_else(Q00201==1,1,2,missing=2),missing=2))                                         
pns2019.1$Q002P<-factor(pns2019.1$Q002P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q002P)

#Exame de sangue para medir a glicemia nunca realizado - Q003P
pns2019.1 <- pns2019.1 %>% mutate(Q003P = ifelse(Q02901 == 6,1,2))
pns2019.1$Q003P<-factor(pns2019.1$Q003P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q003P)

#Diagnóstico médico autorreferido de diabetes - Q004P
pns2019.1 <- pns2019.1 %>% mutate(Q004P = if_else(Q03002==1 & C006==2,2,
                                          if_else(Q03001==1,1,2,missing=2),missing=2))                                         
pns2019.1$Q004P<-factor(pns2019.1$Q004P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q004P)

#Exame de sangue para medir o colesterol e/ou triglicérides nunca realizado - Q005P
pns2019.1 <- pns2019.1 %>% mutate(Q005P = ifelse(Q05901 == 6,1,2))
pns2019.1$Q005P<-factor(pns2019.1$Q005P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q005P)

#Diagnóstico médico autorreferido de colesterol alto  - Q006P
pns2019.1 <- pns2019.1 %>% mutate(Q006P = if_else(Q060 == 1,1,2,missing=2))
pns2019.1$Q006P<-factor(pns2019.1$Q006P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q006P)

#Diagnóstico médico autorreferido de alguma doença do coração  - Q007P
pns2019.1 <- pns2019.1 %>% mutate(Q007P = ifelse(Q06306 == 1,1,2))
pns2019.1$Q007P<-factor(pns2019.1$Q007P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q007P)

#Diagnóstico médico autorreferido de AVC (Acidente Vascular Cerebral) - Q008P
pns2019.1 <- pns2019.1 %>% mutate(Q008P = ifelse(Q068 == 1,1,2))
pns2019.1$Q008P<-factor(pns2019.1$Q008P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q008P)


#Diagnóstico médico autorreferido de asma - Q009P
pns2019.1 <- pns2019.1 %>% mutate(Q009P = ifelse(Q074 == 1,1,2))
pns2019.1$Q009P<-factor(pns2019.1$Q009P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q009P)

#Crise de asma nos últimos 12 meses - Q010P
pns2019.1 <- pns2019.1 %>% mutate(Q010P = ifelse(Q074 == 1 & Q076==1,1,2))
pns2019.1$Q010P<-factor(pns2019.1$Q010P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q010P)

#Diagnóstico médico autorreferido de artrite ou reumatismo - Q011P
pns2019.1 <- pns2019.1 %>% mutate(Q011P = ifelse(Q079==1,1,2))
pns2019.1$Q011P<-factor(pns2019.1$Q011P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q011P)


#Problema crônico de coluna - Q012P
pns2019.1 <- pns2019.1 %>% mutate(Q012P = ifelse(Q084==1,1,2))
pns2019.1$Q012P<-factor(pns2019.1$Q012P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q012P)

#Diagnóstico médico autorreferido de DORT (distúrbio osteomuscular relacionado ao trabalho) - Q013P
pns2019.1 <- pns2019.1 %>% mutate(Q013P = ifelse(Q088==1,1,2))
pns2019.1$Q013P<-factor(pns2019.1$Q013P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q013P)


#Diagnóstico autorreferido de depressão por profissional de saúde mental - Q014P
pns2019.1 <- pns2019.1 %>% mutate(Q014P = ifelse(Q092==1,1,2))
pns2019.1$Q014P<-factor(pns2019.1$Q014P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q014P)


#Diagnóstico autorreferido de outra doença mental por profissional de saúde mental - Q015P
pns2019.1 <- pns2019.1 %>% mutate(Q015P = if_else(Q11007==1 | Q11008==1 | Q11009==1,1,2,missing=2))                                         
pns2019.1$Q015P<-factor(pns2019.1$Q015P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q015P)

#Diagnóstico médico autorreferido de doença do pulmão - Q016P
pns2019.1 <- pns2019.1 %>% mutate(Q016P = ifelse(Q11604==1,1,2))
pns2019.1$Q016P<-factor(pns2019.1$Q016P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q016P)

#Diagnóstico médico autorreferido de câncer - Q017P
pns2019.1 <- pns2019.1 %>% mutate(Q017P = ifelse(Q120==1,1,2))
pns2019.1$Q017P<-factor(pns2019.1$Q017P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q017P)

#Diagnóstico médico autorreferido de insuficiência renal crônica - Q018P
pns2019.1 <- pns2019.1 %>% mutate(Q018P = ifelse(Q124==1,1,2))
pns2019.1$Q018P<-factor(pns2019.1$Q018P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q018P)

#Diagnóstico médico autorreferido de pelo menos uma doença crônica não transmissível (DCNT)- Q019P
pns2019.1 <- pns2019.1 %>% mutate(Q019P = if_else(Q011P == 'Sim' | Q009P == 'Sim' | Q008P == 'Sim' | Q012P == 'Sim' | Q017P == 'Sim' | Q007P == 'Sim' | Q014P == 'Sim' | 
                                                  Q004P == 'Sim' | Q013P == 'Sim' | Q002P == 'Sim' | Q018P == 'Sim' | Q015P == 'Sim' | Q016P == 'Sim',1,2,missing=2))                                         
pns2019.1$Q019P<-factor(pns2019.1$Q019P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q019P)


#Limitações das atividades habituais devido à hipertensão arterial - Q020P
pns2019.1 <- pns2019.1 %>% mutate(Q020P = ifelse(Q028%in%3:5,1,
                                          ifelse(Q028%in%1:2,2,9)))
pns2019.1$Q020P<-factor(pns2019.1$Q020P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q020P)

#Limitações das atividades habituais devido ao diabetes  - Q021P
pns2019.1 <- pns2019.1 %>% mutate(Q021P = ifelse(Q058%in%3:5,1,
                                          ifelse(Q058%in%1:2,2,9)))
pns2019.1$Q021P<-factor(pns2019.1$Q021P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q021P)

#Limitações das atividades habituais devido à doença do coração -Q022P
pns2019.1 <- pns2019.1 %>%  mutate(Q022P = ifelse(Q067%in%3:5,1,
                                          ifelse(Q067%in%1:2,2,9)))
pns2019.1$Q022P<-factor(pns2019.1$Q022P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$Q022P)

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)

Sexo

In [ ]:
#Sexo
pns2019.1 <- pns2019.1 %>% rename(Sexo=C006)
pns2019.1$Sexo<-factor(pns2019.1$Sexo, levels=c(1,2), labels=c("Masculino", "Feminino"))
summary(pns2019.1$Sexo)

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
pns2019.1 <-  pns2019.1 %>% mutate(faixa_idade=cut(C008,
  breaks = c(18,30, 45, 60, 75,Inf),
  labels = c("18 a 29 anos","30 a 44 anos","45 a 59 anos","60 a 74 anos","75 anos ou mais"), 
  ordered_result = TRUE, right = FALSE))
summary(pns2019.1$faixa_idade)

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 capita

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,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
pns2019Qsurvey<- pns2019.1 %>% select("V0024","UPA_PNS","peso_morador_selec", "Q001P","Q002P","Q003P","Q004P","Q005P","Q006P","Q007P","Q008P",
                                   "Q009P","Q010P","Q011P","Q012P","Q013P","Q014P","Q015P","Q016P","Q017P","Q018P","Q019P","Q020P","Q021P","Q022P",
                                      "C008","C009","V0031","Q00201","Q028","Q03001","Q058","Q06306","Q067","Sit_Urbano_Rural","Sexo","Unidades_da_Federacao", "GrandesRegioes",
                                     "faixa_idade", "Raca","rend_per_capita","gescol","Capital")
summary(pns2019Qsurvey)

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

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

Cria plano amostral complexo

In [ ]:
#survey design
desPNSQ=svydesign(id=~UPA_PNS, strat=~V0024, weight=~peso_morador_selec, nest=TRUE, data=pns2019Qsurvey)
desPNSQ18=subset(desPNSQ, C008>=18)
desPNSQC18=subset(desPNSQ, C008>=18 & V0031==1)
desPNSQR18=subset(desPNSQ, C008>=18 & C009!=9)
In [ ]:
#survey design - Q020
desPNSQ020_18=subset(desPNSQ, C008>=18 & Q00201==1 & !is.na(Q028))
desPNSQ020_R18=subset(desPNSQ, C008>=18 & Q00201==1 & !is.na(Q028) & C009!=9)
desPNSQ020_C18=subset(desPNSQ, C008>=18 & V0031==1 & Q00201==1 & !is.na(Q028))
In [ ]:
#survey design - Q021
desPNSQ021_18=subset(desPNSQ, C008>=18 & Q03001==1& !is.na(Q058))
desPNSQ021_R18=subset(desPNSQ, C008>=18 & Q03001==1& !is.na(Q058)& C009!=9)
desPNSQ021_C18=subset(desPNSQ, C008>=18 & V0031==1 & Q03001==1 & !is.na(Q058))
In [ ]:
#survey design - Q022
desPNSQ022_18=subset(desPNSQ, C008>=18 & Q06306==1 & !is.na(Q067))
desPNSQ022_R18=subset(desPNSQ, C008>=18 & Q06306==1 & !is.na(Q067) & C009!=9)
desPNSQ022_C18=subset(desPNSQ, C008>=18 & V0031==1 & Q06306==1 & !is.na(Q067))

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(~Q001P,~Q002P,~Q003P,~Q004P,~Q005P,~Q006P,~Q007P,~Q008P,~Q009P,~Q010P,~Q011P,~Q012P,~Q013P,~Q014P,~Q015P,~Q016P,~Q017P,~Q018P,~Q019P,~Q020P,~Q021P,~Q022P)
ListaIndicadoresTexto = c("Q001P","Q002P","Q003P","Q004P","Q005P","Q006P","Q007P","Q008P","Q009P","Q010P","Q011P","Q012P","Q013P","Q014P","Q015P","Q016P","Q017P","Q018P","Q019P","Q020P","Q021P","Q022P")
ListaDominios = c(~Sexo,~Raca,~rend_per_capita,~faixa_idade,~Sit_Urbano_Rural,~Unidades_da_Federacao,~GrandesRegioes,~gescol,~Capital)
ListaDominiosTexto = c("sexo","raça","rend_per_capita","fx_idade_18","urb_rur","uf","região","gescol","capital")
ListaTotais = c('Brasil','Capital')
Ano <- "2019"

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
    #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] == "Q020P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSQ020_C18 , svymean,vartype= c("ci","cv"))
                   }else if(ListaIndicadoresTexto[i] == "Q021P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSQ021_C18 , svymean,vartype= c("ci","cv"))
                   }else if(ListaIndicadoresTexto[i] == "Q022P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSQ022_C18 , svymean,vartype= c("ci","cv"))
                   }else{
                       dataframe_indicador<-svyby( indicador , dominio , desPNSQC18 , 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] == "Q020P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSQ020_R18 , svymean,vartype= c("ci","cv"))
                   }else if(ListaIndicadoresTexto[i] == "Q021P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSQ021_R18 , svymean,vartype= c("ci","cv"))
                   }else if(ListaIndicadoresTexto[i] == "Q022P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSQ022_R18 , svymean,vartype= c("ci","cv"))
                   }else{
                       dataframe_indicador<-svyby( indicador , dominio , desPNSQR18 , svymean,vartype= c("ci","cv"))
                   }
               #design geral para o subconjunto maior que 18 anos    
               }else {
                   if(ListaIndicadoresTexto[i] == "Q020P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSQ020_18 , svymean,vartype= c("ci","cv"))
                   }else if(ListaIndicadoresTexto[i] == "Q021P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSQ021_18 , svymean,vartype= c("ci","cv"))
                   }else if(ListaIndicadoresTexto[i] == "Q022P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSQ022_18 , svymean,vartype= c("ci","cv"))
                   }else{
                       dataframe_indicador<-svyby( indicador , dominio , desPNSQ18 , 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()
        dataframe_indicador_N <- data.frame()
        #Uso do design que é subconjunto do dataset para cada Capital
        if (total == "Capital"){
                   #Indicadores que são subconjunto do dataset tot
                   if(ListaIndicadoresTexto[i] == "Q020P"){
                           dataframe_indicador <- svymean(indicador,desPNSQ020_C18)
                   }else if(ListaIndicadoresTexto[i] == "Q021P"){
                           dataframe_indicador <- svymean(indicador,desPNSQ021_C18)     
                   }else if(ListaIndicadoresTexto[i] == "Q022P"){
                           dataframe_indicador <- svymean(indicador,desPNSQ022_C18)
                   }else{
                       dataframe_indicador <- svymean(indicador,desPNSQC18)
                   }
                   
        } else {
                   if(ListaIndicadoresTexto[i] == "Q020P"){
                           dataframe_indicador <- svymean(indicador,desPNSQ020_18)
                   }else if(ListaIndicadoresTexto[i] == "Q021P"){
                            dataframe_indicador <- svymean(indicador,desPNSQ021_18)
                   }else if(ListaIndicadoresTexto[i] == "Q022P"){
                           dataframe_indicador <- svymean(indicador,desPNSQ022_18)
                   }else{
                       dataframe_indicador <- svymean(indicador,desPNSQ18)
                   }
        }
      
        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 Q 2019

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