Notebook para criação de tabela de indicadores da PNS - módulo P 2019 Tabagismo

Bibliotecas Utilizadas

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

Carregando microdados da PNS

In [54]:
#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>")
  1. 'V0001'
  2. 'V0024'
  3. 'UPA_PNS'
  4. 'V0006_PNS'
  5. 'V0015'
  6. 'V0020'
  7. 'V0022'
  8. 'V0026'
  9. 'V0031'
  10. 'V0025A'
  11. 'V0025B'
  12. 'A001'
  13. 'A002010'
  14. 'A003010'
  15. 'A004010'
  16. 'A01001'
  17. 'A011'
  18. 'A005010'
  19. 'A005012'
  20. 'A00601'
  21. 'A009010'
  22. 'A01401'
  23. 'A01402'
  24. 'A01403'
  25. 'A01501'
  26. 'A016010'
  27. 'A018011'
  28. 'A018012'
  29. 'A018013'
  30. 'A018014'
  31. 'A018015'
  32. 'A018016'
  33. 'A018017'
  34. 'A018018'
  35. 'A018019'
  36. 'A018020'
  37. 'A018021'
  38. 'A018022'
  39. 'A018023'
  40. 'A018024'
  41. 'A018025'
  42. 'A018026'
  43. 'A018027'
  44. 'A018028'
  45. 'A01901'
  46. 'A02101'
  47. 'A02102'
  48. 'A02201'
  49. 'A02305'
  50. 'A02306'
  51. 'A02307'
  52. 'A02308'
  53. 'A02401'
  54. 'A02402'
  55. 'B001'
  56. 'B002'
  57. 'B003'
  58. 'B004'
  59. 'C001'
  60. 'C00301'
  61. 'C004'
  62. 'C006'
  63. 'C00701'
  64. 'C00702'
  65. 'C00703'
  66. 'C008'
  67. 'C009'
  68. 'C01001'
  69. 'C010010'
  70. 'C013'
  71. 'C014'
  72. 'C015'
  73. 'C016'
  74. 'C017'
  75. 'C018'
  76. 'C01801'
  77. 'C011'
  78. 'C012'
  79. 'D001'
  80. 'D00201'
  81. 'D00202'
  82. 'D00301'
  83. 'D00501'
  84. 'D006'
  85. 'D00601'
  86. 'D007'
  87. 'D008'
  88. 'D00901'
  89. 'D010'
  90. 'D01101'
  91. 'D01201'
  92. 'D01301'
  93. 'D01302'
  94. 'D01303'
  95. 'D014'
  96. 'D015'
  97. 'E001'
  98. 'E002'
  99. 'E003'
  100. 'E004'
  101. 'E005'
  102. 'E006011'
  103. 'E008'
  104. 'E010010'
  105. 'E010011'
  106. 'E010012'
  107. 'E010013'
  108. 'E011'
  109. 'E01201'
  110. 'E01401'
  111. 'E014011'
  112. 'E01402'
  113. 'E01403'
  114. 'E01501'
  115. 'E01601'
  116. 'E01602'
  117. 'E01603'
  118. 'E01604'
  119. 'E01605'
  120. 'E017'
  121. 'E01801'
  122. 'E01802'
  123. 'E01803'
  124. 'E01804'
  125. 'E01805'
  126. 'E019'
  127. 'E022'
  128. 'E023011'
  129. 'E024011'
  130. 'E02402'
  131. 'E024021'
  132. 'E025'
  133. 'E02501'
  134. 'E02502'
  135. 'E02503'
  136. 'E026'
  137. 'E02601'
  138. 'E02801'
  139. 'E02802'
  140. 'E02803'
  141. 'E02804'
  142. 'E02805'
  143. 'E02806'
  144. 'E030'
  145. 'E03101'
  146. 'E03102'
  147. 'E03103'
  148. 'E03104'
  149. 'E03105'
  150. 'E03106'
  151. 'E03107'
  152. 'E03108'
  153. 'E032'
  154. 'E033'
  155. 'E027'
  156. 'F001011'
  157. 'F001021'
  158. 'F007011'
  159. 'F007021'
  160. 'F008011'
  161. 'F008021'
  162. 'VDF001'
  163. 'VDF00102'
  164. 'F016'
  165. 'I00101'
  166. 'I00102'
  167. 'I001021'
  168. 'I00103'
  169. 'I001031'
  170. 'I005'
  171. 'I006'
  172. 'I004'
  173. 'I00401'
  174. 'I00402'
  175. 'I00403'
  176. 'I00404'
  177. 'I010010'
  178. 'I012'
  179. 'J001'
  180. 'J00101'
  181. 'J002'
  182. 'J003'
  183. 'J00402'
  184. 'J00404'
  185. 'J005'
  186. 'J006'
  187. 'J007'
  188. 'J00801'
  189. 'J009'
  190. 'J01002'
  191. 'J01101'
  192. 'J012'
  193. 'J01301'
  194. 'J014'
  195. 'J01502'
  196. 'J01602'
  197. 'J01701'
  198. 'J01802'
  199. 'J019'
  200. 'J02002'
  201. 'Q047111'
  202. 'Q050'
  203. 'Q05101'
  204. 'Q05301'
  205. 'Q05401'
  206. 'Q055011'
  207. 'Q055012'
  208. 'Q055013'
  209. 'Q055014'
  210. 'Q055015'
  211. 'Q055016'
  212. 'Q056'
  213. 'Q05701'
  214. 'Q058'
  215. 'Q05901'
  216. 'Q060'
  217. 'Q061'
  218. 'Q06207'
  219. 'Q06208'
  220. 'Q06209'
  221. 'Q06210'
  222. 'Q06211'
  223. 'Q06212'
  224. 'Q06306'
  225. 'Q06307'
  226. 'Q06308'
  227. 'Q06309'
  228. 'Q06310'
  229. 'Q06311'
  230. 'Q064'
  231. 'Q06506'
  232. 'Q06507'
  233. 'Q06508'
  234. 'Q06509'
  235. 'Q06601'
  236. 'Q067'
  237. 'Q068'
  238. 'Q070'
  239. 'Q07208'
  240. 'Q07209'
  241. 'Q07210'
  242. 'Q07211'
  243. 'Q07212'
  244. 'Q07213'
  245. 'Q073'
  246. 'Q074'
  247. 'Q075'
  248. 'Q076'
  249. 'Q07601'
  250. 'Q07704'
  251. 'Q07705'
  252. 'Q07706'
  253. 'Q07707'
  254. 'Q07708'
  255. 'Q07709'
  256. 'Q07710'
  257. 'Q07711'
  258. 'Q078'
  259. 'Q079'
  260. 'Q080'
  261. 'Q08107'
  262. 'Q08108'
  263. 'Q08109'
  264. 'Q08110'
  265. 'Q08111'
  266. 'Q082'
  267. 'Q083'
  268. 'Q084'
  269. 'Q085'
  270. 'Q08607'
  271. 'Q08608'
  272. 'Q08609'
  273. 'Q08610'
  274. 'Q08611'
  275. 'Q087'
  276. 'Q088'
  277. 'Q08901'
  278. 'Q09007'
  279. 'Q09008'
  280. 'Q09009'
  281. 'Q09010'
  282. 'Q09011'
  283. 'Q091'
  284. 'Q092'
  285. 'Q09201'
  286. 'Q09202'
  287. 'Q09301'
  288. 'Q094'
  289. 'Q09502'
  290. 'Q09605'
  291. 'Q09606'
  292. 'Q09607'
  293. 'Q098'
  294. 'Q100'
  295. 'Q10101'
  296. 'Q10202'
  297. 'Q104'
  298. 'Q105'
  299. 'Q106'
  300. 'Q10701'
  301. 'Q109'
  302. 'Q11006'
  303. 'Q11007'
  304. 'Q11008'
  305. 'Q11009'
  306. 'Q11010'
  307. 'Q111'
  308. 'Q11201'
  309. 'Q11405'
  310. 'Q11406'
  311. 'Q11407'
  312. 'Q11408'
  313. 'Q115'
  314. 'Q11604'
  315. 'Q11605'
  316. 'Q11606'
  317. 'Q11607'
  318. 'Q11701'
  319. 'Q11806'
  320. 'Q11807'
  321. 'Q11808'
  322. 'Q11809'
  323. 'Q119'
  324. 'Q120'
  325. 'Q12102'
  326. 'Q12103'
  327. 'Q12104'
  328. 'Q12105'
  329. 'Q12106'
  330. 'Q12107'
  331. 'Q12108'
  332. 'Q12109'
  333. 'Q121010'
  334. 'Q121011'
  335. 'Q121012'
  336. 'Q121013'
  337. 'Q121014'
  338. 'Q121015'
  339. 'Q121016'
  340. 'Q12201'
  341. 'Q12301'
  342. 'Q124'
  343. 'Q125'
  344. 'Q12501'
  345. 'Q12607'
  346. 'Q12608'
  347. 'Q12609'
  348. 'Q12610'
  349. 'Q127'
  350. 'Q128'
  351. 'Q132'
  352. 'Q133'
  353. 'Q134'
  354. 'U00204'
  355. 'U00205'
  356. 'U00206'
  357. 'U00207'
  358. 'U00208'
  359. 'U00101'
  360. 'U00401'
  361. 'U005'
  362. 'U006'
  363. 'U00902'
  364. 'U01002'
  365. 'U014'
  366. 'U02001'
  367. 'U02101'
  368. 'U02302'
  369. 'U02303'
  370. 'U02402'
  371. 'U02403'
  372. 'U02501'
  373. 'W001'
  374. 'W00101'
  375. 'W00102'
  376. 'W00103'
  377. 'W00201'
  378. 'W00202'
  379. 'W00203'
  380. 'V0028'
  381. 'V0029'
  382. 'V0030'
  383. 'V00281'
  384. 'V00291'
  385. 'V00301'
  386. 'V00282'
  387. 'V00292'
  388. 'V00302'
  389. 'V00283'
  390. 'V00293'
  391. 'V00303'
  392. 'VDC001'
  393. 'VDC003'
  394. 'VDD004A'
  395. 'VDE001'
  396. 'VDE002'
  397. 'VDF002'
  398. 'VDF003'
  399. 'VDF004'
  400. 'VDDATA'

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

In [55]:
#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)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
 0.00582  0.27579  0.56358  1.03597  1.16822 63.29775 

Criação de variáveis dos indicadores

In [56]:
#Desfechos - Indicadores

#P019P - Uso atual de produtos derivados do tabaco 
pns2019.1 <- pns2019.1 %>% mutate(P019P = ifelse(P050 %in% 1:2, 1,
                                          ifelse(P067 %in% 1:2, 1, 2)))
pns2019.1$P019P<-factor(pns2019.1$P019P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$P019P)

#P020P - Fumo atual do tabaco 
pns2019.1 <- pns2019.1 %>% mutate(P020P = ifelse(P050 %in% 1:2, 1, 2))
pns2019.1$P020P<-factor(pns2019.1$P020P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$P020P)

#P021P - Ex-fumantes de tabaco
pns2019.1 <- pns2019.1 %>% mutate(P021P = ifelse(P050 == 3 & P052 %in% 1:2,1,2))
pns2019.1$P021P<-factor(pns2019.1$P021P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$P021P)

#P022P - Tentativa de parar de fumar nos últimos 12 meses entre os fumantes atuais de tabaco
pns2019.1 <- pns2019.1 %>% mutate(P022P = if_else(P060==1 | P05901==0,1,2,missing=2))                                        
pns2019.1$P022P<-factor(pns2019.1$P022P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$P022P)


#P023P - Fumo passivo no domícilio entre os não fumantes
pns2019.1 <- pns2019.1 %>% mutate(P023P = if_else(P050==3 & P068<=3,1,2,missing=2))                                        
pns2019.1$P023P<-factor(pns2019.1$P023P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$P023P)


#P024P - Fumo atual de cigarro
pns2019.1 <- pns2019.1 %>% mutate(P024P =  ifelse((P050%in%1:2) & (P05401<=4 | P05404<=4 | P05407<=4),1,2))                                                                                                           
pns2019.1$P024P<-factor(pns2019.1$P024P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2019.1$P024P)
Sim
11706
Não
79140
Sim
11386
Não
79460
Sim
24224
Não
66622
Sim
5700
Não
85146
Sim
6295
Não
84551
Sim
11155
Não
79691

Definições de abrangências

Situação urbana ou rural

In [57]:
#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)
urbano
69873
rural
20973

Sexo

In [58]:
#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)
Masculino
42799
Feminino
48047

UF

In [59]:
#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)
Rondônia
2176
Acre
2380
Amazonas
3479
Roraima
2238
Pará
3853
Amapá
1554
Tocantins
1922
Maranhão
5080
Piauí
2740
Ceará
4265
Rio Grande do Norte
2962
Paraíba
3158
Pernambuco
4083
Alagoas
2987
Sergipe
2610
Bahia
3659
Minas Gerais
5209
Espírito Santo
3541
Rio de Janeiro
4966
São Paulo
6114
Paraná
3967
Santa Catarina
3738
Rio Grande do Sul
3767
Mato Grosso do Sul
2863
Mato Grosso
2468
Goiás
2702
Distrito Federal
2365

Grandes Regiões

In [60]:
#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)
Norte
17602
Nordeste
31544
Sudeste
19830
Sul
11472
Centro-Oeste
10398

Faixa Etária

In [61]:
#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)
18 a 29 anos
15394
30 a 44 anos
26754
45 a 59 anos
23655
60 a 74 anos
16767
75 anos ou mais
5961
NA's
2315

Raça

In [62]:
#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)
Branca
33133
Preta
10345
Parda
45994
NA's
1374

Renda per capita

In [63]:
#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)
Até 1/2 SM
23697
1/2 até 1 SM
26406
1 até 2 SM
22466
2 até 3 SM
7612
Mais de 3 SM
10665

Escolaridade

In [64]:
# 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 instrução e fundamental incompleto","Fundamental completo e médio incompleto",
                                           "Médio completo e superior incompleto","Superior completo"))
summary(pns2019.1$gescol)
Sem instrução e fundamental incompleto
36276
Fundamental completo e médio incompleto
13520
Médio completo e superior incompleto
27433
Superior completo
13617

Capital

In [65]:
#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)
Porto Velho
2176
Rio Branco
2380
Manaus
3479
Boa Vista
2238
Belém
3853
Macapá
1554
Palmas
1922
São Luís
5080
Teresina
2740
Fortaleza
4265
Natal
2962
João Pessoa
3158
Recife
4083
Maceió
2987
Aracaju
2610
Salvador
3659
Belo Horizonte
5209
Vitória
3541
Rio de Janeiro
4966
São Paulo
6114
Curitiba
3967
Florianópolis
3738
Porto Alegre
3767
Campo Grande
2863
Cuiabá
2468
Goiânia
2702
Brasília
2365

Criando Indicadores

Filtrando base de indicadores

In [66]:
#Selecionando variáveis para cálculo de indicadores no survey
pns2019Psurvey<- pns2019.1 %>% select("V0024","UPA_PNS","peso_morador_selec", "P019P","P020P","P021P","P022P","P023P","P024P",
                                     "C008","C009","V0031","P050","P05901","Sit_Urbano_Rural","Sexo","Unidades_da_Federacao", "GrandesRegioes",
                                     "faixa_idade", "Raca","rend_per_capita","gescol","Capital")
summary(pns2019Psurvey)
     V0024            UPA_PNS          peso_morador_selec P019P      
 Min.   :1110011   Min.   :110000016   Min.   : 0.00582   Sim:11706  
 1st Qu.:2210011   1st Qu.:220001391   1st Qu.: 0.27579   Não:79140  
 Median :2853020   Median :280039950   Median : 0.56358              
 Mean   :2998072   Mean   :296695855   Mean   : 1.03597              
 3rd Qu.:3553013   3rd Qu.:350588998   3rd Qu.: 1.16822              
 Max.   :5310220   Max.   :530051067   Max.   :63.29775              
                                                                     
 P020P       P021P       P022P       P023P       P024P            C008       
 Sim:11386   Sim:24224   Sim: 5700   Sim: 6295   Sim:11155   Min.   : 15.00  
 Não:79460   Não:66622   Não:85146   Não:84551   Não:79691   1st Qu.: 32.00  
                                                             Median : 45.00  
                                                             Mean   : 46.39  
                                                             3rd Qu.: 60.00  
                                                             Max.   :107.00  
                                                                             
      C009           V0031            P050           P05901     
 Min.   :1.000   Min.   :1.000   Min.   :1.000   Min.   : 0.00  
 1st Qu.:1.000   1st Qu.:1.000   1st Qu.:3.000   1st Qu.: 6.00  
 Median :4.000   Median :2.000   Median :3.000   Median :15.00  
 Mean   :2.679   Mean   :2.605   Mean   :2.762   Mean   :17.29  
 3rd Qu.:4.000   3rd Qu.:4.000   3rd Qu.:3.000   3rd Qu.:25.00  
 Max.   :9.000   Max.   :4.000   Max.   :3.000   Max.   :74.00  
                                                 NA's   :66622  
 Sit_Urbano_Rural        Sexo          Unidades_da_Federacao
 urbano:69873     Masculino:42799   São Paulo     : 6114    
 rural :20973     Feminino :48047   Minas Gerais  : 5209    
                                    Maranhão      : 5080    
                                    Rio de Janeiro: 4966    
                                    Ceará         : 4265    
                                    Pernambuco    : 4083    
                                    (Other)       :61129    
      GrandesRegioes           faixa_idade        Raca      
 Norte       :17602   18 a 29 anos   :15394   Branca:33133  
 Nordeste    :31544   30 a 44 anos   :26754   Preta :10345  
 Sudeste     :19830   45 a 59 anos   :23655   Parda :45994  
 Sul         :11472   60 a 74 anos   :16767   NA's  : 1374  
 Centro-Oeste:10398   75 anos ou mais: 5961                 
                      NA's           : 2315                 
                                                            
     rend_per_capita                                      gescol     
 Até 1/2 SM  :23697   Sem instrução e fundamental incompleto :36276  
 1/2 até 1 SM:26406   Fundamental completo e médio incompleto:13520  
 1 até 2 SM  :22466   Médio completo e superior incompleto   :27433  
 2 até 3 SM  : 7612   Superior completo                      :13617  
 Mais de 3 SM:10665                                                  
                                                                     
                                                                     
           Capital     
 São Paulo     : 6114  
 Belo Horizonte: 5209  
 São Luís      : 5080  
 Rio de Janeiro: 4966  
 Fortaleza     : 4265  
 Recife        : 4083  
 (Other)       :61129  

Exporta tabela filtrada

In [67]:
#Salvando csv para cálculo de indicadores no survey
path <- "<coloque aqui o caminho onde deseja salvar a base filtrada>"
write.csv(pns2019Psurvey, file.path(path, "pns2019Psurvey.csv"))

Cria plano amostral complexo

In [68]:
#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)
desPNSPR18=subset(desPNSP, C008>=18 & C009!=9)
In [69]:
#survey design - P022P
desPNSP022P_18=subset(desPNSP, C008>=18 & (P050==1 | P050==2 | P05901==0))
desPNSP022P_R18=subset(desPNSP, C008>=18 & (P050==1 | P050==2 | P05901==0) & C009!=9)
desPNSP022P_C18=subset(desPNSP, C008>=18 & V0031==1 & (P050==1 | P050==2 | P05901==0))
In [70]:
#survey design - P023P
desPNSP023P_18=subset(desPNSP, C008>=18 & P050==3)
desPNSP023P_R18=subset(desPNSP, C008>=18 & P050==3 & C009!=9)
desPNSP023P_C18=subset(desPNSP, C008>=18 & V0031==1 & P050==3 & !is.na(P023P))

Criação da tabela de indicadores

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

In [71]:
matrizIndicadores = data.frame()

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

In [73]:
ListaIndicadores = c(~P019P,~P020P,~P021P,~P022P,~P023P,~P024P)
ListaIndicadoresTexto = c("P019P","P020P","P021P","P022P","P023P","P024P")
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"
In [74]:
#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"){
                   if(ListaIndicadoresTexto[i] == "P022P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSP022P_C18 , svymean,vartype= "ci")
                   }else if(ListaIndicadoresTexto[i] == "P023P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSP023P_C18 , svymean,vartype= "ci")
                    }else{
                       dataframe_indicador<-svyby( indicador , dominio , desPNSPC18 , svymean,vartype= "ci")
                   }
                   
               }else if (ListaDominiosTexto[j]=="raça"){
                   if(ListaIndicadoresTexto[i] == "P022P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSP022P_R18 , svymean,vartype= "ci")
                   }else if(ListaIndicadoresTexto[i] == "P023P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSP023P_R18 , svymean,vartype= "ci")
                   }else{
                       dataframe_indicador<-svyby( indicador , dominio , desPNSPR18 , svymean,vartype= "ci")
                   }
                   
               }else {
                   if(ListaIndicadoresTexto[i] == "P022P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSP022P_18 , svymean,vartype= "ci")
                   }else if(ListaIndicadoresTexto[i] == "P023P"){
                           dataframe_indicador<-svyby( indicador , dominio , desPNSP023P_18 , 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
               
    }
}

Criando a tabela pela abrangência total

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

Preenchendo a tabela com as abrangências Brasil e total de capitais

In [ ]:
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"){
                   if(ListaIndicadoresTexto[i] == "P022P"){
                           dataframe_indicador <- svymean(indicador,desPNSP022P_C18)
                   }else if(ListaIndicadoresTexto[i] == "P023P"){
                           dataframe_indicador <- svymean(indicador,desPNSP023P_C18)     
                   }else{
                       dataframe_indicador <- svymean(indicador,desPNSPC18)
                   }
                   
        } else {
                   if(ListaIndicadoresTexto[i] == "P022P"){
                            dataframe_indicador <- svymean(indicador,desPNSP022P_18)
                   }else if(ListaIndicadoresTexto[i] == "P023P"){
                            dataframe_indicador <- svymean(indicador,desPNSP023P_18)
                   }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]
        print(ListaIndicadoresTexto[i])
        dataframe_indicador$abr_tipo <- "total"
        dataframe_indicador$abr_nome <- total
        dataframe_indicador$Ano <- Ano 
        print(colnames(dataframe_indicador))
        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)
        
    }
}

Unindo tabela de indicadores e totais

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

Exportando tabela de indicadores

In [80]:
write.table(matrizIndicadores,file="<coloque aqui o caminho para exportação da matriz de indicadores>",sep = ";",dec = ",",row.names = FALSE)