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

Bibliotecas Utilizadas

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

Carregando microdados da PNS

In [13]:
#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. 'UPA'
  6. 'V0015'
  7. 'V0020'
  8. 'V0022'
  9. 'V0026'
  10. 'V0031'
  11. 'V0025'
  12. 'A001'
  13. 'A002'
  14. 'A003'
  15. 'A004'
  16. 'A005'
  17. 'A006'
  18. 'A007'
  19. 'A008'
  20. 'A009'
  21. 'A010'
  22. 'A011'
  23. 'A012'
  24. 'A013'
  25. 'A014'
  26. 'A015'
  27. 'A016'
  28. 'A017'
  29. 'A01801'
  30. 'A01802'
  31. 'A01803'
  32. 'A01804'
  33. 'A01805'
  34. 'A01806'
  35. 'A01807'
  36. 'A01808'
  37. 'A01809'
  38. 'A01810'
  39. 'A01811'
  40. 'A01812'
  41. 'A01813'
  42. 'A01814'
  43. 'A01815'
  44. 'A01816'
  45. 'A01817'
  46. 'A01818'
  47. 'A019'
  48. 'A020'
  49. 'A021'
  50. 'A022'
  51. 'A02301'
  52. 'A02302'
  53. 'A02303'
  54. 'A02304'
  55. 'A024'
  56. 'B001'
  57. 'B002'
  58. 'B003'
  59. 'B004'
  60. 'C001'
  61. 'C00301'
  62. 'C004'
  63. 'C006'
  64. 'C00701'
  65. 'C00702'
  66. 'C00703'
  67. 'C008'
  68. 'C009'
  69. 'C010'
  70. 'C011'
  71. 'C012'
  72. 'D001'
  73. 'D002'
  74. 'D003'
  75. 'D004'
  76. 'D005'
  77. 'D006'
  78. 'D007'
  79. 'D008'
  80. 'D009'
  81. 'D010'
  82. 'D011'
  83. 'D012'
  84. 'D013'
  85. 'D014'
  86. 'D015'
  87. 'E001'
  88. 'E002'
  89. 'E003'
  90. 'E004'
  91. 'E005'
  92. 'E006'
  93. 'E007'
  94. 'E008'
  95. 'E01001'
  96. 'E01002'
  97. 'E01003'
  98. 'E011'
  99. 'E01201'
  100. 'E014'
  101. 'E01501'
  102. 'E01601'
  103. 'E01602'
  104. 'E01603'
  105. 'E01604'
  106. 'E01605'
  107. 'E017'
  108. 'E01801'
  109. 'E01802'
  110. 'E01803'
  111. 'E01804'
  112. 'E01805'
  113. 'E019'
  114. 'E020'
  115. 'E021'
  116. 'E022'
  117. 'E023'
  118. 'E024'
  119. 'E025'
  120. 'E02501'
  121. 'E02502'
  122. 'E026'
  123. 'E027'
  124. 'F001'
  125. 'F00102'
  126. 'F007'
  127. 'F00702'
  128. 'F008'
  129. 'F00802'
  130. 'VDF001'
  131. 'VDF00102'
  132. 'G001'
  133. 'G002'
  134. 'G00201'
  135. 'G003'
  136. 'G004'
  137. 'G005'
  138. 'G006'
  139. 'G007'
  140. 'G00701'
  141. 'G008'
  142. 'G009'
  143. 'G010'
  144. 'G014'
  145. 'G015'
  146. 'G01501'
  147. 'G016'
  148. 'G017'
  149. 'G018'
  150. 'G021'
  151. 'G022'
  152. 'G02201'
  153. 'G023'
  154. 'G024'
  155. 'G02501'
  156. 'G02502'
  157. 'G02503'
  158. 'G026'
  159. 'G027'
  160. 'G032'
  161. 'I001'
  162. 'I002'
  163. 'I003'
  164. 'I004'
  165. 'I005'
  166. 'I006'
  167. 'I007'
  168. 'I00701'
  169. 'I008'
  170. 'I009'
  171. 'I010'
  172. 'I011'
  173. 'J001'
  174. 'J002'
  175. 'J003'
  176. 'J004'
  177. 'J005'
  178. 'J006'
  179. 'J007'
  180. 'J008'
  181. 'J009'
  182. 'J010'
  183. 'J011'
  184. 'J012'
  185. 'J013'
  186. 'J014'
  187. 'J015'
  188. 'J016'
  189. 'J017'
  190. 'J018'
  191. 'J019'
  192. 'J020'
  193. 'J021'
  194. 'J022'
  195. 'J023'
  196. 'J024'
  197. 'J025'
  198. 'J026'
  199. 'J027'
  200. 'J029'
  201. 'R032'
  202. 'R033'
  203. 'R034'
  204. 'R035'
  205. 'R03601'
  206. 'R03602'
  207. 'R03603'
  208. 'R03604'
  209. 'R03605'
  210. 'R03606'
  211. 'R03607'
  212. 'R03608'
  213. 'R03609'
  214. 'R03610'
  215. 'R03611'
  216. 'R037'
  217. 'R038'
  218. 'R039'
  219. 'R040'
  220. 'R041'
  221. 'R04101'
  222. 'R042'
  223. 'R04201'
  224. 'R043'
  225. 'R044'
  226. 'R045'
  227. 'R046'
  228. 'R047'
  229. 'R048'
  230. 'R04901'
  231. 'R04902'
  232. 'R04903'
  233. 'S001'
  234. 'S002'
  235. 'S003'
  236. 'S004'
  237. 'S005'
  238. 'S006'
  239. 'S007'
  240. 'S008'
  241. 'S009'
  242. 'S01001'
  243. 'S01002'
  244. 'S01003'
  245. 'S01004'
  246. 'S01005'
  247. 'S01101'
  248. 'S01102'
  249. 'S01103'
  250. 'S012'
  251. 'S013'
  252. 'S01401'
  253. 'S01402'
  254. 'S01403'
  255. 'S01404'
  256. 'S01405'
  257. 'S015'
  258. 'S016'
  259. 'S017'
  260. 'S018'
  261. 'S019'
  262. 'S020'
  263. 'S021'
  264. 'S022'
  265. 'S023'
  266. 'S024'
  267. 'S025'
  268. 'S026'
  269. 'S027'
  270. 'S028'
  271. 'S029'
  272. 'S030'
  273. 'S031'
  274. 'S032'
  275. 'S033'
  276. 'S034'
  277. 'S035'
  278. 'S036'
  279. 'S037'
  280. 'S038'
  281. 'S039'
  282. 'S040'
  283. 'S041'
  284. 'S042'
  285. 'S043'
  286. 'S044'
  287. 'S045'
  288. 'S046'
  289. 'S047'
  290. 'S048'
  291. 'S049'
  292. 'S050'
  293. 'S051'
  294. 'S052'
  295. 'S053'
  296. 'S054'
  297. 'S055'
  298. 'S056'
  299. 'S057'
  300. 'S058'
  301. 'U001'
  302. 'U00201'
  303. 'U00202'
  304. 'U00203'
  305. 'U004'
  306. 'U005'
  307. 'U006'
  308. 'U009'
  309. 'U010'
  310. 'U011'
  311. 'U014'
  312. 'U015'
  313. 'U01701'
  314. 'U01702'
  315. 'U01801'
  316. 'U01802'
  317. 'U019'
  318. 'U020'
  319. 'U021'
  320. 'U022'
  321. 'U023'
  322. 'U02301'
  323. 'U024'
  324. 'U02401'
  325. 'U025'
  326. 'X001'
  327. 'X002'
  328. 'X003'
  329. 'X004'
  330. 'X005'
  331. 'X006'
  332. 'X007'
  333. 'X008'
  334. 'X011'
  335. 'X012'
  336. 'X01401'
  337. 'X01402'
  338. 'X01501'
  339. 'X01502'
  340. 'X016'
  341. 'X017'
  342. 'X018'
  343. 'X019'
  344. 'X02001'
  345. 'X02002'
  346. 'X02003'
  347. 'X02004'
  348. 'X02005'
  349. 'X02006'
  350. 'X02201'
  351. 'X02202'
  352. 'X02203'
  353. 'X02204'
  354. 'X02205'
  355. 'X02206'
  356. 'X024'
  357. 'X02501'
  358. 'X02502'
  359. 'X02503'
  360. 'X02504'
  361. 'X02505'
  362. 'X02506'
  363. 'X02507'
  364. 'X02508'
  365. 'X02509'
  366. 'X02510'
  367. 'W00101'
  368. 'W00102'
  369. 'W00103'
  370. 'W00201'
  371. 'W00202'
  372. 'W00203'
  373. 'W00301'
  374. 'W00302'
  375. 'W00303'
  376. 'W00401'
  377. 'W00402'
  378. 'W00403'
  379. 'W00404'
  380. 'W00405'
  381. 'W00406'
  382. 'W00407'
  383. 'W00408'
  384. 'V0028'
  385. 'V0029'
  386. 'V00281'
  387. 'V00291'
  388. 'V00282'
  389. 'V00292'
  390. 'V00283'
  391. 'V00293'
  392. 'VDC001'
  393. 'VDC002'
  394. 'VDD004'
  395. 'VDD004A'
  396. 'VDE001'
  397. 'VDE002'
  398. 'VDF002'
  399. 'VDF003'
  400. 'VDDATA'

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

In [14]:
#Selecionando registros válidos para o módulo P e calculando peso amostral - summary de verificação
pns2013.1<-pns2013 %>% filter(M001==1)
pns2013.1<-pns2013.1 %>% mutate(peso_morador_selec=((V00291*(60202/145572211))))
pns2013.1<-pns2013.1 %>% filter(!is.na(peso_morador_selec))
summary(pns2013.1$peso_morador_selec)
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
 0.004156  0.243959  0.521557  1.000000  1.147413 31.179597 

Criação de variáveis dos indicadores

In [15]:
#Desfechos - Indicadores

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

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

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

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


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

#P024P - Fumo atual de cigarro
pns2013.1 <- pns2013.1 %>% mutate(P024P =  ifelse((P050%in%1:2) & (P05401<=4 | P05404<=4 | P05407<=4),1,2))                                                                                                           
pns2013.1$P024P<-factor(pns2013.1$P024P, levels=c(1,2), labels=c("Sim","Não"))
summary(pns2013.1$P024P)
Sim
8906
Não
51296
Sim
8729
Não
51473
Sim
10258
Não
49944
Sim
4672
Não
55530
Sim
4602
Não
55600
Sim
8539
Não
51663

Definições de abrangências

Situação urbana ou rural

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

Sexo

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

UF

In [18]:
#Estados - UFs
pns2013.1 <- pns2013.1 %>% rename(Unidades_da_Federacao=V0001)
pns2013.1$Unidades_da_Federacao<-factor(pns2013.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(pns2013.1$Unidades_da_Federacao)
Rondônia
1694
Acre
1814
Amazonas
2586
Roraima
1591
Pará
2004
Amapá
1332
Tocantins
1515
Maranhão
1774
Piauí
1804
Ceará
2560
Rio Grande do Norte
1691
Paraíba
1943
Pernambuco
2591
Alagoas
1748
Sergipe
1553
Bahia
2641
Minas Gerais
3779
Espírito Santo
1724
Rio de Janeiro
3486
São Paulo
5305
Paraná
3012
Santa Catarina
1623
Rio Grande do Sul
2913
Mato Grosso do Sul
1809
Mato Grosso
1476
Goiás
2423
Distrito Federal
1811

Grandes Regiões

In [19]:
#Grandes Regiões

pns2013.1 <- pns2013.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(pns2013.1$GrandesRegioes)
Norte
12536
Nordeste
18305
Sudeste
14294
Sul
7548
Centro-Oeste
7519

Capital

In [20]:
#Capital
pns2013.1<- pns2013.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(pns2013.1$Capital)
Porto Velho
1694
Rio Branco
1814
Manaus
2586
Boa Vista
1591
Belém
2004
Macapá
1332
Palmas
1515
São Luís
1774
Teresina
1804
Fortaleza
2560
Natal
1691
João Pessoa
1943
Recife
2591
Maceió
1748
Aracaju
1553
Salvador
2641
Belo Horizonte
3779
Vitória
1724
Rio de Janeiro
3486
São Paulo
5305
Curitiba
3012
Florianópolis
1623
Porto Alegre
2913
Campo Grande
1809
Cuiabá
1476
Goiânia
2423
Brasília
1811

Faixa Etária

In [21]:
#Faixas Etárias
pns2013.1 <-  pns2013.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(pns2013.1$faixa_idade)
18 a 29 anos
14321
30 a 44 anos
20242
45 a 59 anos
14462
60 a 74 anos
8290
75 anos ou mais
2887

Raça

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

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

summary(pns2013.1$Raca)
Branca
24106
Preta
5631
Parda
29512
NA's
953

Renda per capita

In [23]:
#Rendimento domiciliar per capita

pns2013.1 <-  pns2013.1 %>% drop_na(VDF003) %>% mutate(rend_per_capita=cut(VDF003,
  breaks = c(-Inf,339, 678, 1356, 2034,Inf),
  labels=c("Até 1/2 SM","1/2 até 1 SM","1 até 2 SM","2 até 3 SM","Mais de 3 SM"), 
  ordered_result = TRUE, right = TRUE, na.exclude= TRUE))

summary(pns2013.1$rend_per_capita)
Até 1/2 SM
14256
1/2 até 1 SM
17504
1 até 2 SM
15493
2 até 3 SM
5335
Mais de 3 SM
7603

Escolaridade

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

pns2013.1$gescol<-factor(pns2013.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(pns2013.1$gescol)
Sem instrução e fundamental incompleto
24080
Fundamental completo e médio incompleto
9212
Médio completo e superior incompleto
19145
Superior completo
7754

Criando Indicadores

Filtrando base de indicadores

In [26]:
#Selecionando variáveis para cálculo de indicadores no survey_ALTERAR
pns2013Psurvey<- pns2013.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",
                                     "Capital","faixa_idade", "Raca","rend_per_capita","gescol")
summary(pns2013Psurvey)
     V0024            UPA_PNS        peso_morador_selec  P019P      
 Min.   :1110011   Min.   :1100001   Min.   : 0.004156   Sim: 8903  
 1st Qu.:2210013   1st Qu.:2200075   1st Qu.: 0.243935   Não:51288  
 Median :2951023   Median :2900192   Median : 0.521557              
 Mean   :3035304   Mean   :3007768   Mean   : 1.000020              
 3rd Qu.:4110111   3rd Qu.:4100002   3rd Qu.: 1.147380              
 Max.   :5310220   Max.   :5300180   Max.   :31.179597              
                                                                    
 P020P       P021P       P022P       P023P       P024P            C008       
 Sim: 8726   Sim:10257   Sim: 4671   Sim: 4602   Sim: 8536   Min.   : 18.00  
 Não:51465   Não:49934   Não:55520   Não:55589   Não:51655   1st Qu.: 30.00  
                                                             Median : 41.00  
                                                             Mean   : 43.32  
                                                             3rd Qu.: 55.00  
                                                             Max.   :101.00  
                                                                             
      C009          V0031            P050           P05901     
 Min.   :1.00   Min.   :1.000   Min.   :1.000   Min.   : 0.00  
 1st Qu.:1.00   1st Qu.:1.000   1st Qu.:3.000   1st Qu.: 5.00  
 Median :3.00   Median :2.000   Median :3.000   Median :12.00  
 Mean   :2.61   Mean   :2.308   Mean   :2.733   Mean   :14.78  
 3rd Qu.:4.00   3rd Qu.:4.000   3rd Qu.:3.000   3rd Qu.:21.00  
 Max.   :9.00   Max.   :4.000   Max.   :3.000   Max.   :84.00  
                                                NA's   :49934  
 Sit_Urbano_Rural        Sexo             Unidades_da_Federacao
 urbano:49234     Masculino:25915   São Paulo        : 5304    
 rural :10957     Feminino :34276   Minas Gerais     : 3779    
                                    Rio de Janeiro   : 3485    
                                    Paraná           : 3009    
                                    Rio Grande do Sul: 2913    
                                    Bahia            : 2640    
                                    (Other)          :39061    
      GrandesRegioes            Capital               faixa_idade   
 Norte       :12535   São Paulo     : 5304   18 a 29 anos   :14315  
 Nordeste    :18302   Belo Horizonte: 3779   30 a 44 anos   :20239  
 Sudeste     :14291   Rio de Janeiro: 3485   45 a 59 anos   :14461  
 Sul         : 7545   Curitiba      : 3009   60 a 74 anos   : 8289  
 Centro-Oeste: 7518   Porto Alegre  : 2913   75 anos ou mais: 2887  
                      Salvador      : 2640                          
                      (Other)       :39061                          
     Raca           rend_per_capita 
 Branca:24101   Até 1/2 SM  :14256  
 Preta : 5631   1/2 até 1 SM:17504  
 Parda :29506   1 até 2 SM  :15493  
 NA's  :  953   2 até 3 SM  : 5335  
                Mais de 3 SM: 7603  
                                    
                                    
                                     gescol     
 Sem instrução e fundamental incompleto :24080  
 Fundamental completo e médio incompleto: 9212  
 Médio completo e superior incompleto   :19145  
 Superior completo                      : 7754  
                                                
                                                
                                                

Exporta tabela filtrada

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

Cria plano amostral complexo

In [28]:
#survey design
desPNSP=svydesign(id=~UPA_PNS, strat=~V0024, weight=~peso_morador_selec, nest=TRUE, data=pns2013Psurvey)
desPNSP18=subset(desPNSP, C008>=18)
desPNSPC=svydesign(id=~UPA_PNS, strat=~V0024, weight=~peso_morador_selec, nest=TRUE, data=pns2013Psurvey)
desPNSPC18=subset(desPNSPC, C008>=18 & V0031==1)
desPNSPR18=subset(desPNSP, C008>=18 & C009!=9)
In [29]:
#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 [30]:
#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 [31]:
matrizIndicadores = data.frame()

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

In [32]:
#Cálculo dos indicadores usando o pacote survey 
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 <- "2013"
In [33]:
#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 [36]:
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 de totais

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

Exportando tabela de indicadores

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