Esses códigos foram elaborados pela equipe da Diretoria de Estudos e Políticas Ambientais e Territoriais (DEPAT), sob trabalhos diretos da Coordenação de Estudos Territoriais (COET). O relatório da pesquisa está disponível em https://www.ipe.df.gov.br/deficit-e-demanda-habitacional-do-distrito-federal-2021/ A DEPAT é parte do IPEDF Instituto de Pesquisa e Estatística do Distrito Federal (IPEDF) Os códigos a seguir dizem respeito ao ajuste da base de dados da Pesquisa de modo a permitir a expansão e realização de inferências. Há também algumas das tabelas utilizadas. Todos os demais agrupamentos e cálculos presentes no relatório foram feitos com base na metodologia. Pedimos a gentileza de reportarem bugs ou erros nos códigos abaixo. E-mail: gab-depat@ipe.df.gov.br Todos os dados foram obtidos a partir da Pesquisa Distrital por Amostra de Domicílios (PDAD) O dicionário de variáveis e outras informações sobre a PDAD 2021 podem ser encontrados no site do IPEDF: https://www.ipe.df.gov.br/microdados-pdad-2021/
Criando um ambiente virtual Para manter a memória dos pacotes
utilizados, de modo que possam ser totalmente reproduzidos, sugere-se
utilizar o pacote renv.
Para isso, o pacote deve ser instalado inicialmente. Este procedimento foi feito com o renv 1.0.2.
## Adotando a versão correta dos pacotes.
Junto com esse script, estão disponíveis os arquivos
renv.lock, .Rprofile,
renv/settings.json e renv/activate.R.
Para que os pacotes sejam os mesmos utilizados neste projeto, as
informações das versões dos pacotes ficarão registradas no arquivo
renv.lock. Com esse arquivo na mesma pasta do projeto,
pode-se recuperar as versões adequadas em qualquer outra máquina com
conexão ao repositório ou à internet com a função
renv::restore().
#rm(list = ls(all = TRUE))
options(scipen = 999)
salariominimo<-1302
# O pacote `pacman`, por meio de sua função p_load()
# é utilizado para instalar e carregar os pacotes necessários
# Primeiro, testa-se se o pacote está instalado. Se não, esta será feita.
if(!require("pacman")) install.packages("pacman")
pacman::p_load(
tidyverse, # Pacote para manipulação de dados
readxl, # Pacote para leitura de arquivos .xls e .xlsx
lubridate, # Pacote para manipulação de datas
data.table, # Pacote para manipulação de dados
survey, # Pacote para manipulação de dados survey
srvyr # Pacote que ajusta a família tidyverse para dados survey
)
library(googledrive)
library(googlesheets4)
Importar dados:
Dic_mor <- read_csv("Dic_mor.csv")
Rows: 19018 Columns: 4
── Column specification ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (3): coluna, desc_coluna, desc_valor
dbl (1): valor
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#pdad2023 <- read_csv("pdad2023_tratada.csv")
pdad2023 <- read_csv("pdad2024out.csv")
New names:
• `` -> `...1`
Aviso: One or more parsing issues, call `problems()` on your data frame for details, e.g.:
dat <- vroom(...)
problems(dat)
Rows: 69542 Columns: 268
── Column specification ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (6): ficha, morador_id, E04_1_1, E06_1, E08_1, chave_morador
dbl (260): ...1, A01uf, localidade, setor_distrito, indice, idade_calculada, E02_3, E03, E03_1, E03_1_1, E03_2, E03_2_1, E04, E04_1, E...
date (2): E02_1, E02_2
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Dic_Dom <- read_csv("Dic_Dom.csv")
Rows: 733 Columns: 4
── Column specification ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (3): coluna, desc_coluna, desc_valor
dbl (1): valor
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
O objetivo é calcular a demanda habitacional com a taxa de chefia tradicional - que leva em conta todos os chefes daquela faixa etária.
# Fazer a junção das bases de moradores e domicílios
# Trazer as informações de pessoas para domicílios
#rm(pdad_dom_2021, pdad_mor_2021)
#ajustes
pdad2023$UF[pdad2023$A01uf==52]<-"PMB"
Aviso: Unknown or uninitialised column: `UF`.
pdad2023$UF[pdad2023$A01uf==53]<-"DF"
pdad2023$UF |> table()
DF PMB
50643 18899
Dic_Dom |> filter(str_detect(coluna,"loca"))
pdad2023 |>
left_join(Dic_Dom |> filter(coluna=="localidade") |> mutate(strata_localidade=desc_valor) |> select(-coluna,-desc_coluna,-desc_valor),by=c("localidade"="valor"))->pdad2023
pdad2023$idade<-pdad2023$idade_calculada
pdad2023$A01nficha<-pdad2023$ficha
pdad2023$RA_nome<-pdad2023$strata_localidade
pdad2023<-pdad2023 %>% mutate(grupo_pdadA=case_when(RA_nome=="Área Rural"~"Área Rural",
UF=="DF"~"DF",
TRUE~UF))# %>% select(grupo_pdadA) %>% table()
#pdad2023$A01npessoas
#pdad2023 %>% select(ficha,morador_id) %>%
# mutate(n_morador=as.numeric(str_remove(morador_id,paste0(ficha,"-")))) %>%
# group_by(ficha) %>%summarise(A01npessoas=max(n_morador)) %>%
# right_join(pdad2023,by=c("ficha") )->pdad2023
# Deixar apenas os domicílios/moradores onde o responsável tem entre 24 e 64 anos.
pdad2023_original <- pdad2023
pdad2023 <-
subset(pdad2023,
ficha %in% subset(pdad2023, E04 == 1 &
idade_calculada %in% c(24:64))$ficha)
#pdad2023 %>%
Agora, deve-se identificar os domicílios que têm demanda habitacional, e trabalhar apenas com estes.
# Criação das classificações de famílias
matriz_familiar <- pdad2023 %>%
# select(A01nficha, A01npessoas, E04, idade) %>%
mutate(condicao = 1,
E04_edit = case_when(E04 == 1 ~ 'responsavel',
E04 == 2 ~ 'conjuge',
E04 == 3 ~ 'conjuge',
E04 == 4 & idade < 24 ~ 'filho_menor24',
E04 == 5 & idade < 24 ~ 'filho_menor24',
E04 == 6 & idade < 24 ~ 'filho_menor24' ,
E04 == 4 & idade >=24 ~ 'filho_maior24',
E04 == 5 & idade >=24 ~ 'filho_maior24',
E04 == 6 & idade >=24 ~ 'filho_maior24',
E04 == 7 ~ 'genro_nora',
E04 == 8 ~ 'pais',
E04 == 9 ~ 'sogros',
E04 == 10 ~ 'neto',
E04 == 11 ~ 'bisneto',
E04 == 12 ~ 'irmao',
E04 == 13 ~ 'avos',
E04 == 14 ~ 'outro_parente',
E04 == 15 ~ 'agregado',
E04 == 16 ~ 'convivente',
E04 == 17 ~ 'pensionista',
E04 == 18 ~ 'empregado_domestico',
E04 == 19 ~ 'parente_empregado')) %>%
group_by(A01nficha, A01npessoas,
E04_edit) %>%
summarise(n = sum(condicao)) %>%
spread(E04_edit, n)
`summarise()` has grouped output by 'A01nficha', 'A01npessoas'. You can override using the `.groups` argument.
pdad2023$idoso <- ifelse(pdad2023$idade >= 65, 1, 0)
matriz_idosos <-
as.data.frame(table(pdad2023$A01nficha, pdad2023$idoso))
pdad2023$idoso <- NULL
matriz_idosos$idosos <-
as.numeric(levels(matriz_idosos$Var2))[matriz_idosos$Var2] * matriz_idosos$Freq
names(matriz_idosos)[1] <- "A01nficha"
matriz_idosos <- subset(matriz_idosos, idosos > 0)
matriz_familiar <-
merge(matriz_familiar,
matriz_idosos,
by = "A01nficha",
all.x = TRUE)
#rm(matriz_idosos)
matriz_idosos
# Indicadora se o idoso é responsável ou cônjuge.
matriz_familiar$idoso_conj <-
ifelse(
matriz_familiar$A01nficha %in% subset(pdad2023, E04 %in% c(2, 3) &
idade >= 65)$A01nficha,
1,
0
)
# Criar variável indicadora se alguém entre 24 e 64 anos mora no domicílio e não é responsável ou cônjuge.
pdad2023$adulto <-
ifelse(pdad2023$idade >= 24 & pdad2023$idade < 65, 1, 0)
matriz_adulto <-
as.data.frame(table(pdad2023$A01nficha, pdad2023$adulto))
pdad2023$adulto <- NULL
matriz_adulto$adulto <-
as.numeric(levels(matriz_adulto$Var2))[matriz_adulto$Var2] * matriz_adulto$Freq
names(matriz_adulto)[1] <- "A01nficha"
matriz_adulto <- subset(matriz_adulto, adulto > 0)
matriz_familiar <-
merge(matriz_familiar,
matriz_adulto,
by = "A01nficha",
all.x = TRUE)
#rm(matriz_adulto)
matriz_familiar$adulto_resp <-
ifelse(
matriz_familiar$A01nficha %in% subset(pdad2023, E04 == 1 &
idade >= 24 & idade < 65)$A01nficha,
1,
0
)
matriz_familiar %>% group_by(adulto_resp) %>% summarise(n=n()) ### todos os domicilios tem adultos como responsaveis pelo domicilio
matriz_familiar$adulto_conj <-
ifelse(
matriz_familiar$A01nficha %in% subset(pdad2023, E04 %in% c(2, 3) &
idade >= 24 & idade < 65)$A01nficha,
1,
0
)
matriz_familiar %>% group_by(adulto_conj) %>% summarise(n=n()) ### todos os domicilios tem adultos como responsaveis pelo domicilio
NA
# filhos menores de 24 anos e idosos.
matriz_familiar$demanda <- NA
matriz_familiar$co
NULL
matriz_familiar$demanda <-
ifelse(((
rowSums(matriz_familiar[, c("responsavel", "conjuge", "filho_menor24", "idosos")], na.rm =TRUE)
- (matriz_familiar[, c("idoso_conj")])
) == matriz_familiar$A01npessoas) == TRUE,
0,
matriz_familiar$demanda)
matriz_familiar$demanda %>% table()
.
0
14211
# Número de pessoas no domicílio que demandam habitação - i.e tem pessoas entre 24 e 64 anos
# que não são responsáveis ou cônjuges.
matriz_familiar$demanda <-
ifelse((matriz_familiar$A01npessoas - (
rowSums(matriz_familiar[, c("responsavel", "conjuge", "filho_menor24", "idosos")], na.rm =
TRUE) - (matriz_familiar[, c("idoso_conj")])
)) > 0,
(
matriz_familiar$adulto - rowSums(matriz_familiar[, c("adulto_resp", "adulto_conj")], na.rm =
TRUE)
),
matriz_familiar$demanda
)
# Considerar a idade da pessoa mais velha do casal.
# Se a pessoa mais velha do casal for idosa, o casal não tem demanda por habitação.
# Primeiro, cria-se uma variável indicadora para o tipo de casal.
matriz_familiar$casal_avos <- ifelse(matriz_familiar$avos == 2, 1, NA)
matriz_familiar$casal_pais <- ifelse(matriz_familiar$pais == 2, 1, NA)
matriz_familiar$casal_sogros <-
ifelse(matriz_familiar$sogros == 2, 1, NA)
A indicação da existência de casal de filhos é a própria variável de de genro/nora.
# Faz-se para cada tipo de casal separado porque pode ter mais de um tipo de casal por domicílio.
# Separa-se os indivíduos de cada casal para calcular a idade máxima dele.
idade_casal_avos <-
subset(
pdad2023,
A01nficha %in% subset(matriz_familiar, casal_avos == 1 &
demanda > 0)$A01nficha
) %>%
subset(E04 == 13)
idade_casal_sogros <-
subset(
pdad2023,
A01nficha %in% subset(matriz_familiar, casal_sogros == 1 &
demanda > 0)$A01nficha
) %>%
subset(E04 == 9)
idade_casal_pais <-
subset(
pdad2023,
A01nficha %in% subset(matriz_familiar, casal_pais == 1 &
demanda > 0)$A01nficha
) %>%
subset(E04 == 8)
# Calculo a idade do cônjuge mais velho para determinar o chefe do casal.
idade_casal_avos2 <- idade_casal_avos %>%
group_by(A01nficha) %>%
summarise(chefe_idade = max(idade))
idade_casal_avos <-
merge(idade_casal_avos,
idade_casal_avos2,
by = "A01nficha",
all.x = TRUE)
idade_casal_avos <- idade_casal_avos %>%
group_by(A01nficha) %>%
mutate(chefe_id = ifelse(
sum(idade) / 2 == chefe_idade,
min(morador_id),
ifelse(idade == chefe_idade, morador_id, 0)
)) %>%
mutate(chefe_casal = ifelse(morador_id == chefe_id, 1, 0)) %>%
mutate(conj_casal = ifelse(morador_id != chefe_id, 1, 0))
#rm(idade_casal_avos2)
idade_casal_sogros2 <- idade_casal_sogros %>%
group_by(A01nficha) %>%
summarise(chefe_idade = max(idade))
idade_casal_sogros <-
merge(idade_casal_sogros,
idade_casal_sogros2,
by = "A01nficha",
all.x = TRUE)
idade_casal_sogros <- idade_casal_sogros %>%
group_by(A01nficha) %>%
mutate(chefe_id = ifelse(
sum(idade) / 2 == chefe_idade,
min(morador_id),
ifelse(idade == chefe_idade, morador_id, 0)
)) %>%
mutate(chefe_casal = ifelse(morador_id == chefe_id, 1, 0)) %>%
mutate(conj_casal = ifelse(morador_id != chefe_id, 1, 0))
#rm(idade_casal_sogros2)
idade_casal_pais2 <- idade_casal_pais %>%
group_by(A01nficha) %>%
summarise(chefe_idade = max(idade))
idade_casal_pais <-
merge(idade_casal_pais,
idade_casal_pais2,
by = "A01nficha",
all.x = TRUE)
idade_casal_pais <- idade_casal_pais %>%
group_by(A01nficha) %>%
mutate(chefe_id = ifelse(
sum(idade) / 2 == chefe_idade,
min(morador_id),
ifelse(idade == chefe_idade, morador_id, 0)
)) %>%
mutate(chefe_casal = ifelse(morador_id == chefe_id, 1, 0)) %>%
mutate(conj_casal = ifelse(morador_id != chefe_id, 1, 0))
#rm(idade_casal_pais2)
# Identificação dos casos de genro/nora e filhos.
idade_casal_filhos01 <-
subset(
pdad2023,
A01nficha %in% subset(matriz_familiar, genro_nora == 1 &
filho_maior24 == 1, demanda > 0)$A01nficha
) %>%
subset(E04 == 7 | (E04 %in% c(4:6) & idade >= 24))
idade_casal_filhos01b <- idade_casal_filhos01 %>%
group_by(A01nficha) %>%
summarise(chefe_idade = max(idade))
idade_casal_filhos01 <-
merge(idade_casal_filhos01,
idade_casal_filhos01b,
by = "A01nficha",
all.x = TRUE)
idade_casal_filhos01 <- idade_casal_filhos01 %>%
group_by(A01nficha) %>%
mutate(chefe_id = ifelse(
sum(idade) / 2 == chefe_idade,
min(morador_id),
ifelse(idade == chefe_idade, morador_id, 0)
)) %>%
mutate(chefe_casal = ifelse(morador_id == chefe_id, 1, 0)) %>%
mutate(conj_casal = ifelse(morador_id != chefe_id, 1, 0))
#rm(idade_casal_filhos01b)
idade_casal_filhos02 <-
subset(
pdad2023,
A01nficha %in% subset(matriz_familiar, genro_nora == 1 &
filho_maior24 >= 2, demanda > 0)$A01nficha
) %>%
subset(E04 == 7 | (E04 %in% c(4:6) & idade >= 24))
idade_casal_filhos02ad <- idade_casal_filhos02 %>%
group_by(A01nficha) %>%
filter(E04 %in% c(4:6)) %>%
summarise(idade_filho = max(idade))
idade_casal_filhos02 <-
merge(idade_casal_filhos02,
idade_casal_filhos02ad,
by = "A01nficha",
all.x = TRUE) %>% subset(E04 == 7 | idade == idade_filho) %>%
subset(!(A01nficha == 57658 & morador_id == 4)) # Retira-se este caso específico em que os dois filhos mais velhos são gêmeos.
#rm(idade_casal_filhos02ad)
idade_casal_filhos02b <- idade_casal_filhos02 %>%
group_by(A01nficha) %>%
summarise(chefe_idade = max(idade))
idade_casal_filhos02 <-
merge(idade_casal_filhos02,
idade_casal_filhos02b,
by = "A01nficha",
all.x = TRUE)
idade_casal_filhos02 <- idade_casal_filhos02 %>%
group_by(A01nficha) %>%
mutate(chefe_id = ifelse(
sum(idade) / 2 == chefe_idade,
min(morador_id),
ifelse(idade == chefe_idade, morador_id, 0)
)) %>%
mutate(chefe_casal = ifelse(morador_id == chefe_id, 1, 0)) %>%
mutate(conj_casal = ifelse(morador_id != chefe_id, 1, 0))
#rm(idade_casal_filhos02b)
# O genro/nora vai ser o chefe neste caso. Imputam-se os filhos mais velhos como cônjuge.
idade_casal_filhos03genro <-
subset(
pdad2023,
A01nficha %in% subset(matriz_familiar, genro_nora == 2 &
demanda > 0)$A01nficha
) %>%
subset(E04 == 7)
# Tem alguns casos que tem dois genros/noras, e não tem filhos com mais de 24 anos, apenas filhos menores.
idade_casal_filhos03filho <-
subset(
pdad2023,
A01nficha %in% subset(matriz_familiar, genro_nora == 2 &
demanda > 0)$A01nficha
) %>%
subset(E04 %in% c(4:6)) %>%
arrange(desc(idade)) %>%
group_by(A01nficha) %>%
slice(1:2)
# Junto os dados dos genros e filhos.
idade_casal_filhos03 <-
rbind(idade_casal_filhos03genro, idade_casal_filhos03filho)
idade_casal_filhos03 <- idade_casal_filhos03 %>%
group_by(A01nficha) %>%
mutate(chefe_casal = ifelse(E04 == 7, 1, 0)) %>%
mutate(conj_casal = ifelse(E04 != 7, 1, 0)) %>%
mutate(chefe_id = ifelse(chefe_casal == 1, morador_id, 0))
#rm(idade_casal_filhos03genro, idade_casal_filhos03filho)
# Junção de todos os casos de casais
library(data.table)
casais <-
bind_rows(
#list(
idade_casal_avos,
idade_casal_pais,
idade_casal_sogros,
idade_casal_filhos01,
idade_casal_filhos02,
idade_casal_filhos03
)
New names:
• `...1` -> `...2`
New names:
• `...1` -> `...2`
New names:
• `...1` -> `...2`
New names:
• `...1` -> `...2`
New names:
• `...1` -> `...2`
# Apesar de o objeto ser "casais", o número de observações é ímpar porque têm casais que só tem o genro.
casais <-
casais[, c("A01nficha",
"morador_id",
"chefe_casal",
"conj_casal",
"chefe_id")]
casais <- as.data.frame(casais)
# Adição da informação sobre casais na PDAD.
pdad2023_original <-
merge(
pdad2023_original,
casais,
all.x = TRUE,
by = c("morador_id","A01nficha")
)
pdad2023_original$conj_casal <-
ifelse(is.na(pdad2023_original$conj_casal) == TRUE,
0,
pdad2023_original$conj_casal)
#pdad2023_original$conj_casal %>% table()
# Juntando as informações de demanda habitacional com a PDAD.
pdad2023_original <-
merge(pdad2023_original,
matriz_familiar[, c("A01nficha", "demanda")],
by = "A01nficha",
all.x = TRUE)
# Contabilizando a renda do responsável pelo domicílio.
pdad_renda <- pdad2023_original %>%
filter(E04 == 1) %>%
mutate(
renda_resp = case_when(
renda_ind_r <= 1100 ~ "ate01SM",
renda_ind_r > 1100 &
renda_ind_r <= 3300 ~ "1a3SM",
renda_ind_r > 3300 &
renda_ind_r <= 5500 ~ "3a5SM",
renda_ind_r > 5500 &
renda_ind_r <= 13200 ~ "5a12SM",
renda_ind_r > 13200 ~ "maisde12SM"
)
) %>%
select(A01nficha, renda_resp)
# Junção dos dados de renda dos responsável com as demais informações da PDAD.
pdad2023_original <-
merge(pdad2023_original,
pdad_renda,
by = "A01nficha",
all.x = TRUE)
#rm(pdad_renda, idade_casal_avos, idade_casal_filhos01,
# idade_casal_filhos02, idade_casal_filhos03, idade_casal_pais,
# idade_casal_sogros, matriz_familiar, casais)
pdad2023_original$demanda
[1] 0 0 0 0 0 NA NA NA NA NA NA NA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0
[45] 2 2 2 2 2 0 0 0 NA NA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 NA NA NA 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0
[89] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 NA NA NA 1 1 1 NA 0 0 0 0 1 1 1 0 NA NA NA NA NA 0 0 0 0
[133] 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 2 2 2 2 0 0 1 1 1 0 0 0 0 0 0 NA NA NA 0 1 1 1 1 1 0 0
[177] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 0 0 0 1 1 1 1 0 0 NA NA 0 NA NA NA NA NA 0 0 0 0 0 0 0
[221] 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 NA NA NA NA 1 1
[265] 1 1 0 0 0 0 0 0 NA NA NA 0 0 0 0 NA 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 1 0 0 NA NA NA NA 1 1 0
[309] 0 0 0 NA NA NA NA NA 0 0 0 0 0 0 0 2 2 2 3 3 3 3 3 3 3 3 NA NA NA NA NA NA NA NA 2 2 2 0 0 0 0 NA NA NA
[353] 0 0 0 NA NA NA NA NA 0 0 0 2 2 2 2 NA NA 3 3 3 3 3 1 1 1 1 1 0 0 0 0 0 0 NA 0 0 NA NA NA NA 0 0 0 0
[397] 1 1 NA NA 0 0 0 0 0 0 0 0 NA NA 0 0 0 0 0 NA NA NA NA 0 0 0 0 0 0 0 0 0 0 0 0 NA NA NA NA NA NA NA NA 0
[441] 0 0 0 0 2 2 2 2 2 2 2 2 2 NA NA NA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 NA NA NA 0
[485] 0 0 0 NA NA NA NA 1 1 1 1 1 1 0 NA NA NA NA 0 NA NA NA NA NA NA 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0
[529] 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 NA NA 0 0 0 0 0 1 1 1 1 NA NA NA NA NA 0 0 0
[573] 0 NA NA NA NA NA NA 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[617] 0 NA NA NA 0 0 0 0 0 0 0 NA NA NA 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 NA NA 0 0 0 0 0 0 0 1 1 0 0 0
[661] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 NA NA NA 0 0 0 0 0 0 0 0 NA 1 1 1 NA NA 0 0 1 1 1 1 0 0 0 0
[705] 2 2 2 2 0 0 0 NA NA 0 0 0 0 1 1 1 0 0 NA NA 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 NA NA 0
[749] 0 NA NA 0 0 0 0 0 0 0 0 0 0 0 NA NA NA 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[793] 2 2 2 2 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 NA NA NA 0 NA 0 0 2 2 2 0 0 0
[837] 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 NA 0 0 NA 0 0 0 0 0 0 0 0 0 0 0 NA NA NA NA 0 0 0 0 0 0
[881] 0 0 0 0 0 0 0 0 0 0 4 4 4 4 4 0 0 NA NA NA 0 0 0 0 NA NA 1 1 0 0 0 0 0 1 1 1 1 0 0 NA 1 1 1 1
[925] NA NA NA 0 0 0 0 0 0 0 0 2 2 2 2 0 0 0 2 2 2 2 2 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 NA NA 0 0 0 1
[969] 1 1 NA 2 2 2 2 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 NA NA 1 1
[ reached getOption("max.print") -- omitted 68542 entries ]
# Declarar o desenho incial
amostra_mor <-
survey::svydesign(id = ~ficha,
strata = ~setor_distrito,
weights = ~peso_mor,
nest=TRUE,
data=pdad2023_original)
amostra_mor <- srvyr::as_survey(amostra_mor)
# Exclui arquivos não mais usados
#rm(amostra, sample_pdad, post_pop, pdad2023_original)
pop_total <- amostra_mor %>%
srvyr::mutate(
grupo_etario = case_when(
idade %in% c(24:29) ~ "idade_24_29",
idade %in% c(30:39) ~ "idade_30_39",
idade %in% c(40:64) ~ "idade_40_64"
)
) %>%
srvyr::group_by(grupo_etario,grupo_pdadA) %>%
srvyr::summarise(pop_total = survey_total(vartype = c("cv", "ci")))
pop_total <- subset(pop_total,!is.na(grupo_etario))
pop_total
# Juntando as tabelas para calcular a taxa de chefia por idade.
tx_chefia_idade <- cbind(tx_chefia, pop_total[, -c(1,2)])
tx_chefia_idade$tx_chefia <-
tx_chefia_idade$total_chefes / tx_chefia_idade$pop_total
# Teste para ver se é possível fazer inferência sobre os dados.
# Necessário coeficiente de variação (cv) menor do que 25%
tx_chefia_idade <- as.data.frame(tx_chefia_idade)
tx_chefia_idade$tx_chefia <-
ifelse(tx_chefia_idade$total_chefes_cv > 0.25,
NA,
tx_chefia_idade$tx_chefia)
#rm(tx_chefia, pop_total)
tx_chefia_idade_ra <- amostra_mor %>%
srvyr::mutate(grupo_etario = case_when(idade %in% c(24:29) ~ "idade_24_29",
idade %in% c(30:39) ~ "idade_30_39",
idade %in% c(40:64) ~ "idade_40_64")) %>%
srvyr::filter(E04==1) %>%
srvyr::group_by(grupo_etario, RA_nome,grupo_pdadA) %>%
srvyr::summarise(total_chefes=survey_total(vartype = c("cv", "ci")))
tx_chefia_idade_ra <- subset(tx_chefia_idade_ra, !is.na(grupo_etario))
pop_idade_ra <- amostra_mor %>%
srvyr::mutate(grupo_etario = case_when(idade %in% c(24:29) ~ "idade_24_29",
idade %in% c(30:39) ~ "idade_30_39",
idade %in% c(40:64) ~ "idade_40_64")) %>%
srvyr::group_by(grupo_etario, RA_nome,grupo_pdadA) %>%
srvyr::summarise(pop_total=survey_total(vartype = c("cv", "ci")))
pop_idade_ra <- subset(pop_idade_ra, !is.na(grupo_etario))
tx_chefia_idade_raf <-
cbind(tx_chefia_idade_ra, pop_idade_ra[, -c(1,2,3)])
tx_chefia_idade_raf$tx_chefia <-
tx_chefia_idade_raf$total_chefes / tx_chefia_idade_raf$pop_total
tx_chefia_idade_raf <-
subset(tx_chefia_idade_raf,!is.na(grupo_etario))
# Teste para ver se inferências podem ser feitas
tx_chefia_idade_raf <- as.data.frame(tx_chefia_idade_raf)
tx_chefia_idade_raf$tx_chefia <-
ifelse(tx_chefia_idade_raf$total_chefes_cv > 0.25,
NA,
tx_chefia_idade_raf$tx_chefia)
demanda_idade <- amostra_mor %>%
srvyr::filter(demanda > 0 & !(E04 %in% c(1:3))) %>%
srvyr::mutate(demanda_ind = ifelse(idade %in% c(24:64) &
conj_casal == 0, 1, 0)) %>%
srvyr::mutate(
grupo_etario = case_when(
idade %in% c(24:29) ~ "idade_24_29",
idade %in% c(30:39) ~ "idade_30_39",
idade %in% c(40:64) ~ "idade_40_64"
)
) %>%
srvyr::group_by(grupo_etario,grupo_pdadA) %>%
srvyr::summarise(demanda_ = survey_total(demanda_ind, vartype = c("cv", "ci"), na.rm =
TRUE))
# Teste para ver se é possível fazer inferência sobre os dados.
demanda_idade <- as.data.frame(demanda_idade)
demanda_idade$demanda_ <-
ifelse(demanda_idade$demanda__cv > 0.25, NA, demanda_idade$demanda_)
demanda_idade <- subset(demanda_idade,!is.na(grupo_etario))
demanda_idade_final <-
merge(demanda_idade, tx_chefia_idade, by = c("grupo_etario","grupo_pdadA"))
demanda_idade_final$demanda_final <-
demanda_idade_final$demanda_ * demanda_idade_final$tx_chefia
demanda_idade_final %>% filter(grupo_pdadA=="DF")%>% janitor::adorn_totals()
grupo_etario grupo_pdadA demanda_ demanda__cv demanda__low demanda__upp total_chefes total_chefes_cv total_chefes_low total_chefes_upp
idade_24_29 DF 116140.53 0.03277222 108678.35 123602.71 75125.59 0.036912226 69690.25 80560.94
idade_30_39 DF 84400.93 0.03983517 77809.34 90992.51 203635.50 0.021343422 195116.54 212154.47
idade_40_64 DF 56287.51 0.04524773 51294.25 61280.78 500393.82 0.009685936 490893.83 509893.80
Total - 256828.97 0.11785512 237781.94 275876.00 779154.91 0.067941584 755700.61 802609.21
pop_total pop_total_cv pop_total_low pop_total_upp tx_chefia demanda_final
269847.7 0.021446792 258504.1 281191.3 0.2784000 32333.53
470022.4 0.015739596 455522.0 484522.9 0.4332464 36566.39
930598.7 0.008547462 915007.9 946189.6 0.5377117 30266.45
1670468.8 0.045733849 1629034.0 1711903.7 1.2493581 99166.37
demanda_idade_final %>% filter(grupo_pdadA=="DF")%>% janitor::adorn_totals()
grupo_etario grupo_pdadA demanda_ demanda__cv demanda__low demanda__upp total_chefes total_chefes_cv total_chefes_low total_chefes_upp
idade_24_29 DF 116140.53 0.03277222 108678.35 123602.71 75125.59 0.036912226 69690.25 80560.94
idade_30_39 DF 84400.93 0.03983517 77809.34 90992.51 203635.50 0.021343422 195116.54 212154.47
idade_40_64 DF 56287.51 0.04524773 51294.25 61280.78 500393.82 0.009685936 490893.83 509893.80
Total - 256828.97 0.11785512 237781.94 275876.00 779154.91 0.067941584 755700.61 802609.21
pop_total pop_total_cv pop_total_low pop_total_upp tx_chefia demanda_final
269847.7 0.021446792 258504.1 281191.3 0.2784000 32333.53
470022.4 0.015739596 455522.0 484522.9 0.4332464 36566.39
930598.7 0.008547462 915007.9 946189.6 0.5377117 30266.45
1670468.8 0.045733849 1629034.0 1711903.7 1.2493581 99166.37
demanda_idade_final %>% filter(grupo_pdadA=="PMB") %>% janitor::adorn_totals()
grupo_etario grupo_pdadA demanda_ demanda__cv demanda__low demanda__upp total_chefes total_chefes_cv total_chefes_low total_chefes_upp
idade_24_29 PMB 48550.49 0.05858833 42973.75 54127.23 41675.72 0.05351186 37304.50 46046.94
idade_30_39 PMB 31807.72 0.07692748 27010.49 36604.94 102881.11 0.03559510 95703.24 110058.97
idade_40_64 PMB 19893.31 0.07707627 16887.21 22899.41 201480.99 0.01529425 195441.07 207520.91
Total - 100251.51 0.21259209 86871.44 113631.58 346037.81 0.10440121 328448.81 363626.82
pop_total pop_total_cv pop_total_low pop_total_upp tx_chefia demanda_final
131315.2 0.03382109 122610.1 140020.2 0.3173717 15408.55
214762.8 0.02709482 203357.3 226168.3 0.4790453 15237.34
356191.4 0.01393277 346464.1 365918.6 0.5656537 11252.72
702269.3 0.07484868 672431.5 732107.2 1.3620708 41898.61
demanda_idade_RA <- amostra_mor %>%
srvyr::filter(demanda > 0 & !(E04 %in% c(1:3))) %>%
srvyr::mutate(demanda_ind = ifelse(idade %in% c(24:64) &
conj_casal == 0, 1, 0)) %>%
srvyr::mutate(
grupo_etario = case_when(
idade %in% c(24:29) ~ "idade_24_29",
idade %in% c(30:39) ~ "idade_30_39",
idade %in% c(40:64) ~ "idade_40_64"
)
) %>%
srvyr::group_by(grupo_etario, RA_nome,grupo_pdadA) %>%
srvyr::summarise(demanda_ = survey_total(demanda_ind, vartype = c("cv", "ci"), na.rm =
TRUE))
# Teste para ver se é possível fazer inferência sobre os dados.
demanda_idade_RA <- as.data.frame(demanda_idade_RA)
demanda_idade_RA$demanda_ <-
ifelse(demanda_idade_RA$demanda__cv > 0.25,
NA,
demanda_idade_RA$demanda_)
demanda_idade_RA <- subset(demanda_idade_RA,!is.na(grupo_etario))
demanda_idade_RA_final <-
merge(demanda_idade_RA,
tx_chefia_idade_raf,
by = c("grupo_etario", "RA_nome","grupo_pdadA"))
demanda_idade_RA_final$demanda_final <-
demanda_idade_RA_final$demanda_ * demanda_idade_RA_final$tx_chefia
demanda_idade_RA_final%>% janitor::adorn_totals() %>% arrange(grupo_pdadA) %>% select(-contains("cv"),-contains("low"),-contains("upp"))
grupo_etario RA_nome grupo_pdadA demanda_ total_chefes pop_total tx_chefia demanda_final
Total - - 350286.0980 1157056.52474 2440759.2488 61.4772799 132079.86001
idade_24_29 Água Quente DF 493.5458 439.05312 1160.5154 0.3783260 186.72119
idade_24_29 Águas Claras DF 3382.5608 5039.92020 11405.7130 0.4418768 1494.67520
idade_24_29 Arapoanga DF 2458.2894 1451.31004 5494.2105 0.2641526 649.36355
idade_24_29 Arniqueira DF 1985.9388 1291.59800 4416.8004 0.2924284 580.74496
idade_24_29 Brazlândia DF 1897.0864 1082.90761 3998.1138 0.2708546 513.83461
idade_24_29 Candangolândia DF 510.4859 567.98767 1461.8530 0.3885395 198.34395
idade_24_29 Ceilândia DF 10078.9992 9781.78332 27807.0389 0.3517736 3545.52626
idade_24_29 Cruzeiro DF 980.4008 680.08664 2378.6321 0.2859150 280.31132
idade_24_29 Fercal DF 244.9685 310.67548 820.8257 0.3784914 92.71846
idade_24_29 Gama DF 4874.9701 2453.03528 11783.5485 0.2081746 1014.84487
idade_24_29 Guará DF 3634.0539 3790.68294 11631.9459 0.3258855 1184.28560
idade_24_29 Itapoã DF 2585.5233 2717.28402 7197.1618 0.3775494 976.16274
idade_24_29 Jardim Botânico DF 3147.8164 813.63019 4946.7141 NA NA
idade_24_29 Lago Norte DF 1402.6112 1166.78564 3366.4709 0.3465901 486.13122
idade_24_29 Lago Sul DF 1002.7672 52.53336 1672.9974 NA NA
idade_24_29 Núcleo Bandeirante DF 862.7962 773.62539 2359.9654 0.3278122 282.83511
idade_24_29 Paranoá DF 2560.4486 1509.23339 5249.0636 0.2875243 736.19121
idade_24_29 Park Way DF 1065.8514 191.38948 1561.0942 NA NA
idade_24_29 Planaltina DF 5676.5972 2410.41232 12362.8126 0.1949728 1106.78211
idade_24_29 Plano Piloto DF 6381.3830 4337.93174 15357.8123 0.2824577 1802.47052
idade_24_29 Recanto Das Emas DF 5687.9851 2619.77745 11748.1073 0.2229957 1268.39624
idade_24_29 Riacho Fundo II DF 3528.7965 1607.77931 7013.8135 0.2292304 808.90746
idade_24_29 Riacho Fundo DF 2026.8811 1541.21740 4750.6859 0.3244200 657.56072
idade_24_29 Samambaia DF 11308.9122 5325.55318 23915.7269 0.2226800 2518.26815
idade_24_29 Santa Maria DF 6896.2149 3442.12225 13001.9344 0.2647392 1825.69871
idade_24_29 São Sebastião DF 4950.2658 4153.86578 11528.1824 0.3603227 1783.69313
idade_24_29 SCIA DF 1355.5173 1442.15463 4152.3241 0.3473126 470.78830
idade_24_29 SIA DF NA 255.12815 875.4585 NA NA
idade_24_29 Sobradinho II DF 3461.7094 2123.40268 7388.7780 0.2873821 994.83338
idade_24_29 Sobradinho DF 3339.1371 1240.56334 6420.8438 0.1932088 645.15058
idade_24_29 Sol Nascente / Pôr do Sol DF 4083.7883 3051.05278 10182.9202 0.2996245 1223.60320
idade_24_29 Sudoeste e Octogonal DF 1014.3846 1584.15101 3536.3450 0.4479628 454.40657
idade_24_29 Taguatinga DF 8592.0172 3444.65345 18908.1479 0.1821783 1565.27873
idade_24_29 Varjão DF 475.7688 441.47909 1180.5783 0.3739516 177.91448
idade_24_29 Vicente Pires DF 3768.0473 1990.82846 8810.5370 0.2259599 851.42775
idade_30_39 Água Quente DF 287.8489 852.08317 1710.7155 0.4980858 143.37348
idade_30_39 Águas Claras DF 3219.3115 16319.43673 29930.1499 0.5452508 1755.33200
idade_30_39 Arapoanga DF 1356.5490 3528.20571 7535.2643 0.4682259 635.17135
idade_30_39 Arniqueira DF 1438.7230 3173.50055 7045.0185 0.4504602 648.08748
idade_30_39 Brazlândia DF 1373.0668 2614.33189 6091.5670 0.4291723 589.28226
idade_30_39 Candangolândia DF 350.2303 1154.49146 2477.6836 0.4659560 163.19191
idade_30_39 Ceilândia DF 8592.4609 17775.90869 43946.7832 0.4044871 3475.53996
idade_30_39 Cruzeiro DF 722.8424 1865.96733 4547.4298 0.4103345 296.60716
idade_30_39 Fercal DF 166.3365 675.35659 1448.3929 0.4662800 77.55938
idade_30_39 Gama DF 4930.9725 8130.62323 19790.6390 0.4108318 2025.80016
idade_30_39 Guará DF 3885.1506 10616.88551 23330.4840 0.4550649 1767.99584
idade_30_39 Itapoã DF 1320.5350 5846.39083 10521.1860 0.5556779 733.79213
idade_30_39 Jardim Botânico DF 1825.8712 4634.24211 11981.3593 0.3867877 706.22447
idade_30_39 Lago Norte DF 955.5726 3314.19509 7052.5447 0.4699290 449.05125
idade_30_39 Lago Sul DF NA 440.75768 2713.9318 NA NA
idade_30_39 Núcleo Bandeirante DF 812.9707 1492.00794 3919.2713 0.3806850 309.48578
idade_30_39 Paranoá DF 1418.3391 4095.16067 9028.8119 0.4535658 643.31017
idade_30_39 Park Way DF 744.5043 809.45429 2881.3594 0.2809279 209.15205
idade_30_39 Planaltina DF 3523.6693 8128.03097 18988.0691 0.4280599 1508.34152
idade_30_39 Plano Piloto DF 4414.6579 16142.52510 36356.6895 0.4440043 1960.12693
idade_30_39 Recanto Das Emas DF 3374.9587 7034.01893 16988.1691 0.4140540 1397.41505
idade_30_39 Riacho Fundo II DF 2380.0515 4630.46525 11192.6478 0.4137060 984.64152
idade_30_39 Riacho Fundo DF 1668.6283 3060.42865 7285.9019 0.4200480 700.90399
idade_30_39 Samambaia DF 7872.0894 18275.39925 41098.9657 0.4446681 3500.46707
idade_30_39 Santa Maria DF 5163.5150 7075.08958 20257.4507 0.3492586 1803.40220
idade_30_39 São Sebastião DF 2721.7219 8094.23179 17000.6871 0.4761120 1295.84458
idade_30_39 SCIA DF 795.8081 2945.42932 6250.5333 0.4712285 375.00744
idade_30_39 SIA DF NA 772.69805 1325.7243 0.5828497 NA
idade_30_39 Sobradinho II DF 2583.2088 5111.00206 12382.2876 0.4127672 1066.26385
idade_30_39 Sobradinho DF 2720.8906 3328.74701 10975.8884 0.3032781 825.18663
idade_30_39 Sol Nascente / Pôr do Sol DF NA 7266.47401 16373.0880 0.4438060 NA
idade_30_39 Sudoeste e Octogonal DF NA 5479.26080 9106.5297 0.6016848 NA
idade_30_39 Taguatinga DF 6093.6598 12528.38170 31188.4821 0.4016990 2447.81698
idade_30_39 Varjão DF 267.1354 697.13466 1519.5631 0.4587731 122.55453
idade_30_39 Vicente Pires DF 3467.3860 5727.18420 15779.1414 0.3629592 1258.51958
idade_40_64 Água Quente DF 156.2707 1997.89223 3397.9554 0.5879689 91.88234
idade_40_64 Águas Claras DF NA 31801.07677 51187.7192 0.6212638 NA
idade_40_64 Arapoanga DF NA 8312.76626 14153.6104 0.5873248 NA
idade_40_64 Arniqueira DF 864.7397 8425.26655 15402.2540 0.5470152 473.02575
idade_40_64 Brazlândia DF 810.7226 7260.60628 12952.1389 0.5605720 454.46840
idade_40_64 Candangolândia DF 313.9302 2311.32130 4513.8143 0.5120550 160.74952
idade_40_64 Ceilândia DF 8174.8832 47435.07224 90520.7527 0.5240243 4283.83730
idade_40_64 Cruzeiro DF NA 5547.42715 9475.9988 0.5854187 NA
idade_40_64 Fercal DF NA 1431.87380 2603.7203 0.5499338 NA
idade_40_64 Gama DF 3207.2421 22553.46989 45866.0216 0.4917250 1577.08113
idade_40_64 Guará DF 2923.8173 21339.60749 43734.4076 0.4879364 1426.63674
idade_40_64 Itapoã DF NA 11889.77732 18858.6026 0.6304697 NA
idade_40_64 Jardim Botânico DF NA 15346.61455 28716.0378 0.5344266 NA
idade_40_64 Lago Norte DF 782.7023 7934.71342 14942.2750 0.5310245 415.63408
idade_40_64 Lago Sul DF NA 3790.69660 10086.1129 0.3758333 NA
idade_40_64 Núcleo Bandeirante DF 560.5301 3776.12575 7391.5012 0.5108740 286.36027
idade_40_64 Paranoá DF NA 10563.66758 16231.4632 0.6508143 NA
idade_40_64 Park Way DF NA 4054.45566 8556.1281 0.4738657 NA
idade_40_64 Planaltina DF 2453.2553 20507.73698 37866.2030 0.5415842 1328.64427
idade_40_64 Plano Piloto DF 3267.9941 39670.49269 75874.8222 0.5228413 1708.64239
idade_40_64 Recanto Das Emas DF 1713.0998 17281.52394 31419.9558 0.5500174 942.23476
idade_40_64 Riacho Fundo II DF NA 13274.30847 22942.3671 0.5785937 NA
idade_40_64 Riacho Fundo DF 987.1921 7319.25454 13023.7505 0.5619928 554.79491
idade_40_64 Samambaia DF 4273.3822 34322.89415 67081.8000 0.5116573 2186.50727
idade_40_64 Santa Maria DF 2824.3309 18932.87967 36843.0685 0.5138790 1451.36437
idade_40_64 São Sebastião DF 1794.3684 16560.10724 28457.5264 0.5819236 1044.18540
idade_40_64 SCIA DF 488.8376 5227.29134 9383.8485 0.5570520 272.30797
idade_40_64 SIA DF NA 864.70360 1535.7138 0.5630630 NA
idade_40_64 Sobradinho II DF 1646.6233 13192.20946 26322.7468 0.5011715 825.24060
idade_40_64 Sobradinho DF 1875.0944 11972.24504 24026.0721 0.4983022 934.36371
idade_40_64 Sol Nascente / Pôr do Sol DF 1564.7535 19827.52665 32379.9018 0.6123405 958.16198
idade_40_64 Sudoeste e Octogonal DF NA 10909.66153 17768.9377 0.6139738 NA
idade_40_64 Taguatinga DF 5776.0452 34999.05318 67841.6522 0.5158933 2979.82295
idade_40_64 Varjão DF 227.1546 1330.15373 2331.6383 0.5704803 129.58725
idade_40_64 Vicente Pires DF 1677.3167 18429.34244 36908.2137 0.4993290 837.53290
idade_24_29 Águas Lindas de Goiás PMB 11600.4041 5476.74801 24463.4964 0.2238743 2597.03230
idade_24_29 Alexânia PMB 765.0834 954.74083 2438.7402 0.3914894 299.52202
idade_24_29 Cidade Ocidental PMB 4031.8785 3391.35186 9960.6794 0.3404739 1372.74959
idade_24_29 Cocalzinho de Goiás PMB NA 812.05595 1849.3300 0.4391082 NA
idade_24_29 Cristalina PMB 1792.5354 1891.36203 6039.2537 0.3131781 561.38285
idade_24_29 Formosa PMB 4379.6839 3435.81370 11510.7657 0.2984870 1307.27861
idade_24_29 Luziânia PMB 7561.9968 6951.45894 20895.7208 0.3326738 2515.67825
idade_24_29 Novo Gama PMB 4096.6967 3664.49465 11425.6860 0.3207243 1313.91001
idade_24_29 Padre Bernardo PMB 917.9369 938.73366 2903.5298 0.3233077 296.77610
idade_24_29 Planaltina PMB 3882.0138 4074.23531 11395.1797 0.3575402 1387.97615
idade_24_29 Santo Antônio do Descoberto PMB 1772.3925 3277.19981 7144.0760 0.4587297 813.04909
idade_24_29 Valparaíso de Goiás PMB 7421.5455 6807.52490 21288.6948 0.3197718 2373.20121
idade_30_39 Águas Lindas de Goiás PMB 6864.2106 17309.62459 39744.9797 0.4355173 2989.48217
idade_30_39 Alexânia PMB 533.1949 1711.36344 3579.6495 0.4780813 254.91048
idade_30_39 Cidade Ocidental PMB 2246.0300 7512.80832 16662.7545 0.4508743 1012.67730
idade_30_39 Cocalzinho de Goiás PMB NA 1551.91097 3089.6939 0.5022863 NA
idade_30_39 Cristalina PMB 1911.5657 3991.88081 9563.2316 0.4174197 797.92508
idade_30_39 Formosa PMB 2701.9619 9197.97449 18722.4401 0.4912808 1327.42189
idade_30_39 Luziânia PMB 5276.0253 15347.73217 33598.9986 0.4567914 2410.04275
[ reached 'max' / getOption("max.print") -- omitted 20 rows ]
demanda_idade_RA_final_TXDF%>% arrange(grupo_pdadA) %>% select(-contains("cv"),-contains("low"),-contains("upp")) %>%
write_sheet("https://docs.google.com/spreadsheets/d/1sCJ7p_GitJXDw4PuYNYAB5Yj7eOseCG3fXyCq_WsHis/edit?usp=sharing",
sheet="Demanda_RA_Txchefia_DF")
✔ Writing to Demanda Habitacional.
✔ Writing to sheet Demanda_RA_Txchefia_DF.
demanda_ss <- amostra_mor %>%
srvyr::filter(demanda>0) %>%
srvyr::mutate(demanda_ind=ifelse(idade %in% c(24:64) & conj_casal==0, 1, 0)) %>%
srvyr::mutate(grupo_etario = case_when(idade %in% c(24:29) ~ "idade_24_29",
idade %in% c(30:39) ~ "idade_30_39",
idade %in% c(40:64) ~ "idade_40_64"),
arranjo2 = ifelse(arranjos %in% c(1,3:6),"Uni/Casais",
ifelse(arranjos == 2,"Monoparental Fem",
ifelse(arranjos == 7,"Outro",NA)))) %>%
srvyr::group_by(grupo_etario, arranjo2,grupo_pdadA) %>%
srvyr::summarise(demanda_=survey_total(vartype = c("cv", "ci"), na.rm=TRUE)) %>%
dplyr::filter(!is.na(grupo_etario))
Error in `dplyr::filter()`:
ℹ In argument: `demanda > 0`.
Caused by error:
! objeto 'demanda' não encontrado
Run `]8;;x-r-run:rlang::last_trace()rlang::last_trace()]8;;` to see where the error occurred.
demanda_ss %>% filter(grupo_pdadA=="DF") %>%
mutate(percentual=demanda_final/sum(demanda_final)) %>%
janitor::adorn_totals()%>% arrange(grupo_pdadA) %>%
write_sheet("https://docs.google.com/spreadsheets/d/1sCJ7p_GitJXDw4PuYNYAB5Yj7eOseCG3fXyCq_WsHis/edit?usp=sharing",
sheet="Demanda_Arranjos")
The googlesheets4 package is requesting access to your Google account.
Enter '1' to start a new auth process or select a pre-authorized account.
1: Send me to the browser for a new auth process.
2: ngthiagogp@gmail.com
1
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
Authentication complete.
✔ Writing to Demanda Habitacional 2025.
✔ Writing to sheet Demanda_Arranjos.
tb_demanda_geral <- demanda_idade %>%
inner_join(tx_chefia) %>%
inner_join(pop_total) %>%
inner_join(dom_total) %>%
select(-contains("cv"), -contains("low"), -contains("upp")) %>%
mutate(demanda_final = demanda_*total_chefes/pop_total)
Joining with `by = join_by(grupo_etario, grupo_pdadA)`
Joining with `by = join_by(grupo_etario, grupo_pdadA)`
Joining with `by = join_by(grupo_etario, grupo_pdadA, pop_total, pop_total_cv,
pop_total_low, pop_total_upp)`
# Tabela de renda domiciliar dos demandantes
tb_renda_demandante <-
amostra_mor %>%
srvyr::filter(demanda > 0 & !(E04 %in% c(1:3))) %>%
srvyr::mutate(demanda_ind = ifelse(idade %in% c(24:64) &
conj_casal == 0, 1, 0)) %>%
srvyr::mutate(
grupo_etario = case_when(
idade %in% c(24:29) ~ "idade_24_29",
idade %in% c(30:39) ~ "idade_30_39",
idade %in% c(40:64) ~ "idade_40_64"
),
renda_dom = case_when(
renda_ind_r <= sm ~ "ate03SM",
renda_ind_r > 1100 &
renda_ind_r <= 3300 ~ "3a8SM",
renda_ind_r > 5500 &
renda_ind_r <= 13200 ~ "8a12SM",
renda_ind_r > 13200 ~ "maisde12SM"
)
) %>%
srvyr::group_by(grupo_etario,grupo_pdadA, renda_dom) %>%
srvyr::summarise(demanda_ = survey_total(demanda_ind, vartype = c("cv", "ci"), na.rm =
TRUE)) ->t
Error in `mutate()`:
ℹ In argument: `renda_dom = case_when(...)`.
Caused by error in `case_when()`:
! Failed to evaluate the left-hand side of formula 1.
Caused by error:
! objeto 'sm' não encontrado
Run `]8;;x-r-run:rlang::last_trace()rlang::last_trace()]8;;` to see where the error occurred.
tb_renda_demandante
Erro: objeto 'tb_renda_demandante' não encontrado
###Por grupo Etário
demanda_idade_strata2 %>%
inner_join(tx_chefia) %>%
inner_join(pop_total) %>%
#select(-contains("cv"), -contains("low"), -contains("upp")) %>%
select(-contains("cv"),-contains("upp"),-contains("low")) %>%
mutate(demanda_final = demanda*total_chefes/pop_total,
tx_chefia=total_chefes/pop_total) %>%
write_sheet("https://docs.google.com/spreadsheets/d/1sCJ7p_GitJXDw4PuYNYAB5Yj7eOseCG3fXyCq_WsHis/edit?usp=sharing",
sheet="Demanda_instrução")
Joining with `by = join_by(grupo_etario, grupo_pdadA)`
Joining with `by = join_by(grupo_etario, grupo_pdadA)`
The googlesheets4 package is requesting access to your Google account.
Enter '1' to start a new auth process or select a pre-authorized account.
1: Send me to the browser for a new auth process.
2: ngthiagogp@gmail.com
1
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
Authentication complete.
✔ Writing to Demanda Habitacional 2025.
✔ Writing to sheet Demanda_instrução.
###Por grupo Etário
demanda_idade_strata3 <- amostra_mor %>%#Filtra apenas observações com demanda positiva
srvyr::filter(#e07<6,
demanda > 0 & !(E04 %in% c(1:3)),!grupo_etario=="Outro") %>%#Cria variável binária: adulto entre 24 e 64 anos, que não é cônjuge nem chefe de casal
srvyr::mutate(demanda_ind = ifelse(idade %in% c(24:64) & conj_casal == 0, 1, 0),
strata_renda=case_when(renda_domiciliar<salariominimo~"0-1SM",
renda_domiciliar<3*salariominimo~"1-3SM",
renda_domiciliar>3*salariominimo~"5+SM",
#renda_ind<salariominimo~"maior4SM",
# TRUE~"Não Sabe / Não se Aplica"
)) %>%#Classifica faixas etárias de interesse
srvyr::group_by(grupo_etario, grupo_pdadA,strata_renda) %>%
srvyr::summarise(demanda = survey_total(demanda_ind, vartype = c("cv", "ci"), na.rm = TRUE)) %>%
as.data.frame() %>% #Converte para data.frame e aplica filtro de precisão
mutate(demanda=ifelse(demanda_cv>params$cv_max,NA,demanda))
Error in `dplyr::filter()`:
ℹ In argument: `!grupo_etario == "Outro"`.
Caused by error:
! objeto 'grupo_etario' não encontrado
Run `]8;;x-r-run:rlang::last_trace()rlang::last_trace()]8;;` to see where the error occurred.
###Por grupo Etário
demanda_strata_mudança %>% filter(grupo_pdadA=="DF") %>% filter(!strata_mudança=="Não Sabe / Não se Aplica") %>%
select(grupo_etario,grupo_pdadA,strata_mudança, demanda_ajustada) %>%
spread(strata_mudança, demanda_ajustada) %>% adorn_totals(where = "row") %>%
mutate(percentual = (sim/(sim+Não))) %>%
write_sheet("https://docs.google.com/spreadsheets/d/1sCJ7p_GitJXDw4PuYNYAB5Yj7eOseCG3fXyCq_WsHis/edit?usp=sharing",
sheet="Demanda por Intenção de formar novo domicilia")
✔ Writing to Demanda Habitacional 2025.
✔ Writing to sheet Demanda por Intenção de formar novo domicilia.
```