#Lendo pacotes necessários
library(survey)
library(ggplot2)
library(dplyr)
library(foreign)
library(forcats)
library(tidyverse)
#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>")
#Selecionando registros válidos para o módulo P e calculando peso amostral - summary de verificação
pns2019.1<-pns2019v3 %>% 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)
#Desfechos - Indicadores
#P017P - Tempo de televisão de 3h ou mais por dia
pns2019.1$P04501[which(is.na(pns2019.1$P04501))] <- 0
pns2019.1 <- pns2019.1 %>% filter(P04501!=9) %>% mutate(P017P = ifelse(P04501==4|P04501==5, 1,2))
pns2019.1$P017P<-factor(pns2019.1$P017P, levels=c(1,2), labels=c("Sim","Nao"))
summary(pns2019.1$P017P)
#P018P - Uso de telas (computador, celular ou tablets) por 3h ou mais no tempo livre
pns2019.1$P04502[which(is.na(pns2019.1$P04502))] <- 0
pns2019.1 <- pns2019.1 %>% filter(P04502!=9) %>% mutate(P018P = ifelse(P04502==4|P04502==5, 1,2))
pns2019.1$P018P<-factor(pns2019.1$P018P, levels=c(1,2), labels=c("Sim","Nao"))
summary(pns2019.1$P018P)
#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
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)
#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("Rondonia","Acre","Amazonas","Roraima","Para","Amapa","Tocantins","Maranhao","Piaui","Ceara",
"Rio Grande do Norte","Paraiba","Pernambuco","Alagoas","Sergipe","Bahia",
"Minas Gerais","Espirito Santo","Rio de Janeiro","Sao Paulo",
"Parana","Santa Catarina","Rio Grande do Sul",
"Mato Grosso do Sul","Mato Grosso","Goias","Distrito Federal"))
summary(pns2019.1$Unidades_da_Federacao)
#Grandes Regiões
pns2019.1 <- pns2019.1 %>%
mutate(GrandesRegioes = fct_collapse(Unidades_da_Federacao,
`1 Norte` = c("Rondonia","Acre","Amazonas","Roraima","Para", "Amapa","Tocantins"),
`2 Nordeste` = c("Maranhao", "Piaui", "Ceara", "Rio Grande do Norte", "Paraiba","Pernambuco", "Alagoas","Sergipe","Bahia"),
`3 Sudeste` = c("Minas Gerais", "Espirito Santo","Rio de Janeiro", "Sao Paulo"),
`4 Sul` = c("Parana", "Santa Catarina", "Rio Grande do Sul"),
`5 Centro-Oeste`= c("Mato Grosso do Sul","Mato Grosso", "Goias", "Distrito Federal")))
summary(pns2019.1$GrandesRegioes)
#Capital
pns2019.1<- pns2019.1 %>% mutate(Capital= fct_collapse(Unidades_da_Federacao,
`Porto Velho`= "Rondonia",
`Boa Vista`= "Roraima",
`Rio Branco `= "Acre",
`Manaus` = "Amazonas",
`Boa Vista`= "Roraima",
`Belem` = "Para" ,
`Macapa`= "Amapa",
`Palmas` = "Tocantins",
`Sao Luis` = "Maranhao",
`Teresina`= "Piaui" ,
`Fortaleza`= "Ceara",
`Natal`= "Rio Grande do Norte",
`Joao Pessoa`= "Paraiba",
`Recife`= "Pernambuco",
`Maceio`= "Alagoas",
`Aracaju`= "Sergipe",
`Salvador`= "Bahia",
`Belo Horizonte`= "Minas Gerais",
`Vitoria`= "Espirito Santo",
`Rio de Janeiro`= "Rio de Janeiro",
`Sao Paulo`= "Sao Paulo",
`Curitiba`= "Parana",
`Florianopolis`= "Santa Catarina",
`Porto Alegre`= "Rio Grande do Sul",
`Campo Grande`= "Mato Grosso do Sul",
`Cuiaba`= "Mato Grosso",
`Goiania` = "Goias",
`Brasilia`= "Distrito Federal"))
summary(pns2019.1$Capital)
#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
pns2019.1 <- pns2019.1 %>% filter(C009!=3|C009!=5|C009!=9)%>% mutate(Raca= ifelse(C009==1, 1,
ifelse(C009==2 , 2, 3)))
pns2019.1$Raca<-factor(pns2019.1$Raca, levels=c(1,2,3),labels=c("Branca", "Preta", "Parda"))
summary(pns2019.1$Raca)
#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("Ate 1/2 SM","1/2 ate 1 SM","1 ate 2 SM",
"2 ate 3 SM","Mais de 3 SM"))
summary(pns2019.1$rend_per_capita)
# 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("Sem instrucao e fundamental incompleto","Fundamental completo e medio incompleto",
"Medio completo e superior incompleto","Superior completo"))
summary(pns2019.1$gescol)
#Selecionando variáveis para cálculo de indicadores no survey_ALTERAR
pns2019Psurvey<- pns2019.1 %>% select("V0024","UPA_PNS","peso_morador_selec","P017P","P018P",
"C008","V0031", "Sit_Urbano_Rural","Sexo","Unidades_da_Federacao", "GrandesRegioes",
"Capital","faixa_idade", "Raca","rend_per_capita","gescol", "Capital")
summary(pns2019Psurvey)
#Salvando csv para cálculo de indicadores no survey_ALTERAR
path <- "<coloque aqui o caminho onde deseja salvar a base filtrada>"
write.csv(pns2019Psurvey, file.path(path, "pns2019Psurvey.csv"))
#survey design
desPNSP=svydesign(id=~UPA_PNS, strat=~V0024, weight=~peso_morador_selec, nest=TRUE, data=pns2019Psurvey)
desPNSP18=subset(desPNSP, C008>=18)
desPNSPC=svydesign(id=~UPA_PNS, strat=~V0024, weight=~peso_morador_selec, nest=TRUE, data=pns2019Psurvey)
desPNSPC18=subset(desPNSPC, C008>=18 & V0031==1)
Essa tabela é responsável por unir os indicadores no formato do painel de indicadores
matrizIndicadores = data.frame()
ListaIndicadores = c(~P017P,~P018P)
ListaIndicadoresTexto = c("P017P","P018P")
ListaDominios = c(~Sexo,~Raca,~rend_per_capita,~faixa_idade,~Sit_Urbano_Rural,~Unidades_da_Federacao,~GrandesRegioes,~Capital,~gescol)
ListaDominiosTexto = c("Sexo","raca","rend_per_capita","fx_idade_18","urb_rur","uf","regiao","capital","gescol")
ListaTotais = c('Brasil','Capital')
Ano <- "2019"
Essas iterações rodam por indicador, abrangência e por design
#Cálculo dos indicadores usando o pacote survey
i <- 0
for( indicador in ListaIndicadores){
i <- i + 1
j <- 1
for (dominio in ListaDominios){
if (ListaDominiosTexto[j]=="capital"){
dataframe_indicador<-svyby( indicador , dominio , desPNSPC18 , svymean,vartype="ci")
}else{
dataframe_indicador<-svyby( indicador , dominio , desPNSP18 , svymean,vartype="ci")
}
dataframe_indicador<-data.frame(dataframe_indicador)
colnames(dataframe_indicador) <- c("abr_nome","Sim","Não","LowerS","LowerN","UpperS","UpperN")
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","Não","LowerS","LowerN","UpperS","UpperN")
matrizIndicadores <-rbind(matrizIndicadores,dataframe_indicador)
j <- j + 1
}
}
matriz_totais <- data.frame()
i=0
for(indicador in ListaIndicadores){
i <- i+1
for(total in ListaTotais){
dataframe_indicador <- data.frame()
dataframe_indicador_S <- data.frame()
dataframe_indicador_N <- data.frame()
if(total == 'Capital'){
dataframe_indicador <- svymean(indicador,desPNSPC18)
}else{
dataframe_indicador <- svymean(indicador,desPNSP18)
}
dataframe_indicador <- cbind(data.frame(dataframe_indicador),data.frame(confint(dataframe_indicador)))
dataframe_indicador <- dataframe_indicador %>%
select('mean','X2.5..','X97.5..')
dataframe_indicador_S <- dataframe_indicador %>%
slice(1)
dataframe_indicador_N <- dataframe_indicador %>%
slice(2)
dataframe_indicador <- cbind(dataframe_indicador_S,dataframe_indicador_N)
colnames(dataframe_indicador) <- c('Sim','LowerS','UpperS','Não','LowerN','UpperN')
dataframe_indicador <- dataframe_indicador %>%
select('Sim','Não','LowerS','LowerN','UpperS','UpperN')
dataframe_indicador$Indicador <- ListaIndicadoresTexto[i]
dataframe_indicador$abr_tipo <- "total"
dataframe_indicador$abr_nome <- total
dataframe_indicador$Ano <- Ano
dataframe_indicador <- dataframe_indicador %>%
select("abr_tipo","abr_nome","Ano","Indicador","Sim","Não","LowerS","LowerN","UpperS","UpperN")
matriz_totais <-rbind(matriz_totais,dataframe_indicador)
}
}
matrizIndicadores<-rbind(matrizIndicadores,matriz_totais)
write.table(matrizIndicadores,file="<coloque aqui o caminho para exportação da matriz de indicadores>",sep = ";",dec = ",",row.names = FALSE)