# Cabeçalho ---- # 2º Censo Distrital da População em Situação de Rua # IPEDF - Instituto de Pesquisa e Estatística do Distrito Federal # Saúde da população em situação de rua # Contato - Email: politicas.sociais@ipe.df.gov.br # Carregar pacotes e bases ---- # Pacotes library(readxl) library(dplyr) library(survey) library(srvyr) library(janitor) library(tidyr) library(data.table) library(openxlsx) # carregar a base censitária dados_censitária <- read_xlsx("S:/AREA_TECNICA/2025/Pesquisas Dipos/1. Pastas por projeto/População em situação de rua/Censo 2/Dados/Base censitária/Censo 2 - base censitária.xlsx") # carregar a base amostral amostra <- read_xlsx("S:/AREA_TECNICA/2025/Pesquisas Dipos/1. Pastas por projeto/População em situação de rua/Censo 2/Dados/Base amostral/Censo 2 - base amostral - com pesos.xlsx") # Criar variáveis categóricas amostra <- amostra %>% mutate( fx.etaria = cut(`4.1`, c(-Inf, 17, 64, +Inf), labels = c("00-18", "18-59", "60+"))) # Criar objeto de amostra complexa com pesos amostra_pes <- survey::svydesign(id = ~ID, weights = ~fator, nest=TRUE, data=amostra) amostra_pes <- srvyr::as_survey(amostra_pes) # Criando variável de faixa etária na base censitária dados_censitária <- dados_censitária %>% mutate( faixa_etaria = case_when( !is.na(`4.4`) & `4.4` <= 11 ~ "Até 11", !is.na(`4.4`) & `4.4` >= 12 & `4.4` <= 17 ~ "12 a 17", !is.na(`4.4`) & `4.4` >= 18 & `4.4` <= 30 ~ "18 a 30", !is.na(`4.4`) & `4.4` >= 31 & `4.4` <= 49 ~ "31 a 49", !is.na(`4.4`) & `4.4` >= 50 & `4.4` <= 59 ~ "50 a 59", !is.na(`4.4`) & `4.4` >= 60 & `4.4` <= 69 ~ "60 a 69", !is.na(`4.4`) & `4.4` >= 70 & `4.4` <= 79 ~ "70 a 79", !is.na(`4.4`) & `4.4` >= 80 & `4.4` <= 89 ~ "80 a 89", !is.na(`4.4`) & `4.4` >= 90 & `4.4` <= 99 ~ "90 a 99", # Se a idade está faltando, usa diretamente a faixa de 4.4_Observação (caso válida) `4.4_Observação` %in% c("Até 11", "12 a 17", "18 a 30", "31 a 49", "50 a 59", "60 a 69", "70 a 79", "80 a 89", "90 a 99") ~ `4.4_Observação`, TRUE ~ "Não foi possível identificar/estimar" ) ) # Segurança alimentar ---- # Na última semana, você ficou um dia inteiro sem comer? seg_alimentar <- dados_censitária %>% filter(`12.1` != "Não se aplica", Responsável != "Criança") %>% count(`12.1`) %>% mutate(proporcao = n / sum(n)) %>% arrange(desc(n)) rm(seg_alimentar) # Como você tem acesso à água para beber ou para cozinhar? # 1. Transformar para formato longo (antes da ponderação) # Converter os dados para formato longo na base original resultado_acesso_agua <- amostra %>% # 1) Empilha todas as colunas de 15.1.1 a 15.1_Outro select(ID, fator, `15.1.1`:`15.1_Outro`) %>% pivot_longer( cols = `15.1.1`:`15.1_Outro`, names_to = "Motivacao", values_to = "Resposta" ) %>% # 2) Cria binário: marcou = 1 se a pessoa assinalou essa opção, 0 caso contrário # (Não selecionou e Não se aplica viram 0; todo o resto vira 1) mutate( marcou = if_else( Resposta %in% c("Não selecionou", "Não se aplica"), 0L, 1L ) ) %>% # 3) Reconstrói o design ponderado as_survey_design(ids = ID, weights = fator) %>% # 4) Para cada Motivacao, soma os 1’s e calcula proporção e CV group_by(Motivacao) %>% summarise( # total ponderado de quem marcou (n_ponderado) + CV n_ponderado = survey_total(marcou, vartype = "cv", na.rm = TRUE), # proporção ponderada que marcou (0–1) + CV proporcao = survey_mean(marcou, vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% # 5) Extrai valores numéricos e reorganiza colunas mutate( n_ponderado = round(as.numeric(n_ponderado)), n_ponderado_cv = n_ponderado_cv, proporcao = as.numeric(proporcao), cv = proporcao_cv * 100 ) %>% select(Motivacao, n_ponderado, n_ponderado_cv, proporcao, cv) %>% arrange(desc(n_ponderado)) # Onde consegue água para beber (Respostas agrupadas) amostra_long <- amostra %>% select(ID, fator, `15.1.1`:`15.1_Outro`) %>% pivot_longer( cols = `15.1.1`:`15.1_Outro`, names_to = "Motivacao", values_to = "Resposta" ) %>% filter(!Resposta %in% c("Não selecionou", "Não se aplica")) %>% mutate( Resposta_agrupada = case_when( Resposta %in% c("Em Serviços de Acolhimento", "No Centro Pop", "No CRAS", "No CREAS", "Em casas de convivência", "Comunitário") ~ "Serviços públicos para a população em situação de rua", Resposta %in% c("No hospital", "No posto de saúde") ~ "Serviços de saúde", Resposta %in% c("Em postos de gasolina", "Na rodoviária", "No terminal de ônibus") ~ "Infraestrutura de transporte", Resposta %in% c("Em lagos/córregos", "No mato/no cerrado", "Água da chuva armazenada") ~ "Fontes naturais", Resposta %in% c("Na própria casa (inclui casas em ocupações irregulares)", "Casa de amigos/parentes") ~ "Residências", Resposta %in% c("Outro(s) local(is)", "Bebo só pinga", "Deus manda", "Em feira", "Em todos os lugares", "Na agência do trabalhador", "No cabaré", "No lixo", "No bebedouro") ~ "Outros informais", TRUE ~ Resposta ) ) # 2. Recriar o design (se necessário) e recalcular amostra_pes_long <- survey::svydesign( id = ~ID, weights = ~fator, nest = TRUE, data = amostra_long ) %>% as_survey() resultado_acesso_água <- amostra_pes_long %>% group_by(Resposta_agrupada) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), proporcao = n_ponderado / sum(n_ponderado), cv = n_ponderado_cv * 100 ) %>% arrange(desc(n_ponderado)) # Onde você consegue comida? # 1. Transformar para formato longo (antes da ponderação) # Converter os dados para formato longo na base original # 1. Transformar para formato longo (antes da ponderação) # Converter os dados para formato longo na base original resultado_acesso_comida <- amostra %>% # 1) Empilha todas as colunas de 15.1.1 a 15.1_Outro select(ID, fator, `15.3.1`:`15.3_Outro`) %>% pivot_longer( cols = `15.3.1`:`15.3_Outro`, names_to = "Motivacao", values_to = "Resposta" ) %>% # 2) Cria binário: marcou = 1 se a pessoa assinalou essa opção, 0 caso contrário # (Não selecionou e Não se aplica viram 0; todo o resto vira 1) mutate( marcou = if_else( Resposta %in% c("Não selecionou", "Não se aplica"), 0L, 1L ) ) %>% # 3) Reconstrói o design ponderado as_survey_design(ids = ID, weights = fator) %>% # 4) Para cada Motivacao, soma os 1’s e calcula proporção e CV group_by(Motivacao) %>% summarise( # total ponderado de quem marcou (n_ponderado) + CV n_ponderado = survey_total(marcou, vartype = "cv", na.rm = TRUE), # proporção ponderada que marcou (0–1) + CV proporcao = survey_mean(marcou, vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% # 5) Extrai valores numéricos e reorganiza colunas mutate( n_ponderado = round(as.numeric(n_ponderado)), n_ponderado_cv = n_ponderado_cv, proporcao = as.numeric(proporcao), cv = proporcao_cv * 100 ) %>% select(Motivacao, n_ponderado, n_ponderado_cv, proporcao, cv) %>% arrange(desc(n_ponderado)) # Onde consegue comida (Respostas agrupadas) amostra_long <- amostra %>% select(ID, fator, `15.3.1`:`15.3_Outro`) %>% pivot_longer( cols = `15.3.1`:`15.3_Outro`, names_to = "Tipo", values_to = "Resposta" ) %>% filter(!Resposta %in% c("Não selecionou", "Não se aplica")) %>% mutate( Resposta_agrupada = case_when( Resposta %in% c("Centro Pop (Taguatinga/Plano Piloto)", "Serviço de Acolhimento", "SAIAFA", "Berço da Cidadania 4", "Berço da Cidadania 3", "Berço da Cidadania 5") ~ "Serviços públicos para população em situação de rua", Resposta %in% c("Casas", "Ganha comida de restaurante/lanchonete/bar", "Recebe de grupos que distribuem comida na rua", "Ganha em feiras/mercados", "Doação") ~ "Doações", Resposta %in% c("Outro", "Faz o corre", "Lugares", "No centro Espírita", "Não come") ~ "Outros", TRUE ~ Resposta ) ) # 2. Recriar o design (se necessário) e recalcular amostra_pes_long <- survey::svydesign( id = ~ID, weights = ~fator, nest = TRUE, data = amostra_long ) %>% as_survey() resultado_acesso_comida <- amostra_pes_long %>% group_by(Resposta_agrupada) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), proporcao = n_ponderado / sum(n_ponderado), cv = n_ponderado_cv * 100 ) %>% arrange(desc(n_ponderado)) # Saúde crianças ---- respostas_crianças <- 102 # Vou ler algumas ações/habilidades e você me diz se a criança ou adolescente tem muita dificuldade ou se não consegue realizar de jeito nenhum, mesmo usando algum aparelho para ajudar: habilidades_crianças <- dados_censitária %>% select(`11.7.1`:`11.7.8`) %>% pivot_longer( cols = `11.7.1`:`11.7.8`, names_to = "Tipo", values_to = "Resposta" ) %>% filter(!Resposta %in% c("Não selecionou", "Não se aplica")) %>% count(Tipo, Resposta, name = "n") %>% mutate(proporcao = n / respostas_crianças) %>% arrange(desc(n)) # A criança tem algum transtorno ou síndrome? síndrome_crianças <- dados_censitária %>% count(`11.8`, name = "n") %>% filter(`11.8` != "Não se aplica") %>% mutate(proporcao = n / sum(n)) %>% arrange(desc(n)) # Quais transtornos ou síndromes? quais_síndromes_crianças <- dados_censitária %>% select(`11.8.1.1`:`11.8.1_Outro`) %>% pivot_longer( cols = `11.8.1.1`:`11.8.1_Outro`, names_to = "Tipo", values_to = "Resposta" ) %>% filter(!Resposta %in% c("Não selecionou", "Não se aplica")) %>% count(Tipo, Resposta, name = "n") %>% mutate(proporcao = n / sum(n)) %>% arrange(desc(n)) # A criança tem algum outro problema de saúde? saúde_crianças <- dados_censitária %>% filter(`11.9` != "Não se aplica") %>% count(`11.9`) %>% mutate(proporcao = n / sum(n)) %>% arrange(desc(n)) # Quais problemas de saúde? problemas_saúde_crianças <- dados_censitária %>% select(`11.9.1.1`:`11.9.1_Outro`) %>% pivot_longer( cols = `11.9.1.1`:`11.9.1_Outro`, names_to = "Tipo", values_to = "Resposta" ) %>% filter(!Resposta %in% c("Não selecionou", "Não se aplica")) %>% count(Tipo, Resposta, name = "n") %>% mutate(proporcao = n / sum(n)) %>% arrange(desc(n)) # Saúde adultos (amostral) ---- # Vou ler alguns dos problemas/condição de saúde e você me diz se tem/teve algum deles nos últimos 12 meses: Covid19 <- amostra_pes %>% group_by(`10.1.1`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Tuberculose <- amostra_pes %>% group_by(`10.1.2`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Diabetes <- amostra_pes %>% group_by(`10.1.3`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Hipertensão <- amostra_pes %>% group_by(`10.1.4`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Doenças_cardíacas <- amostra_pes %>% group_by(`10.1.5`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) ISTs <- amostra_pes %>% group_by(`10.1.6`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Dores_crônicas <- amostra_pes %>% group_by(`10.1.7`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Depressão <- amostra_pes %>% group_by(`10.1.8`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Doenças_respiratórias <- amostra_pes %>% group_by(`10.1.9`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Doenças_pele <- amostra_pes %>% group_by(`10.1.10`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Hepatite <- amostra_pes %>% group_by(`10.1.11`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Saúde_bucal <- amostra_pes %>% group_by(`10.1.12`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Traumas_acidente <- amostra_pes %>% group_by(`10.1.13`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Doenças_intestinais <- amostra_pes %>% group_by(`10.1.14`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Ansiedade <- amostra_pes %>% group_by(`10.1.15`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Não_tem_problemas <- amostra_pes %>% group_by(`10.1.16`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Outra_doença <- amostra_pes %>% group_by(`10.1.17`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Não_respondeu <- amostra_pes %>% group_by(`10.1.18`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Outro_qual <- amostra_pes %>% group_by(`10.1_Outro`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # Antes de vir para a situação de rua, você usava álcool, ciagrro ou outro tipo de droga? uso_substâncias <- amostra_pes %>% group_by(`10.4`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # O que você usava? Álcool <- amostra_pes %>% filter(`10.4.1.1` != "Não se aplica") %>% group_by(`10.4.1.1`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Cigarro_tabaco <- amostra_pes %>% filter(`10.4.1.2` != "Não se aplica") %>% group_by(`10.4.1.2`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) View(mtcars) Maconha_haxixe_skank <- amostra_pes %>% filter(`10.4.1.3` != "Não se aplica") %>% group_by(`10.4.1.3`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Lança_perfume <- amostra_pes %>% filter(`10.4.1.4` != "Não se aplica") %>% group_by(`10.4.1.4`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Cola <- amostra_pes %>% filter(`10.4.1.5` != "Não se aplica") %>% group_by(`10.4.1.5`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Crack <- amostra_pes %>% filter(`10.4.1.6` != "Não se aplica") %>% group_by(`10.4.1.6`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Cocaína_pó <- amostra_pes %>% filter(`10.4.1.7` != "Não se aplica") %>% group_by(`10.4.1.7`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Thinner <- amostra_pes %>% filter(`10.4.1.8` != "Não se aplica") %>% group_by(`10.4.1.8`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Rupinol <- amostra_pes %>% filter(`10.4.1.9` != "Não se aplica") %>% group_by(`10.4.1.9`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Merla <- amostra_pes %>% filter(`10.4.1.10` != "Não se aplica") %>% group_by(`10.4.1.10`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Outro <- amostra_pes %>% filter(`10.4.1.11` != "Não se aplica") %>% group_by(`10.4.1.11`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Outro_qual <- amostra_pes %>% filter(`10.4.1_Outro` != "Não se aplica") %>% group_by(`10.4.1_Outro`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # E agora, na rua, você usa álcool, cigarro ou outro tipo de droga? uso_substâncias_rua <- amostra_pes %>% group_by(`10.5`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # O que você usa atualmente? Álcool <- amostra_pes %>% filter(`10.5.1.1` != "Não se aplica") %>% group_by(`10.5.1.1`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Cigarro <- amostra_pes %>% filter(`10.5.1.2` != "Não se aplica") %>% group_by(`10.5.1.2`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Maconha_haxixe_skank <- amostra_pes %>% filter(`10.5.1.3` != "Não se aplica") %>% group_by(`10.5.1.3`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Lança_perfume <- amostra_pes %>% filter(`10.5.1.4` != "Não se aplica") %>% group_by(`10.5.1.4`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Cola <- amostra_pes %>% filter(`10.5.1.5` != "Não se aplica") %>% group_by(`10.5.1.5`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Crack <- amostra_pes %>% filter(`10.5.1.6` != "Não se aplica") %>% group_by(`10.5.1.6`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Cocaína <- amostra_pes %>% filter(`10.5.1.7` != "Não se aplica") %>% group_by(`10.5.1.7`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Thinner <- amostra_pes %>% filter(`10.5.1.8` != "Não se aplica") %>% group_by(`10.5.1.8`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Rupinol <- amostra_pes %>% filter(`10.5.1.9` != "Não se aplica") %>% group_by(`10.5.1.9`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Merla <- amostra_pes %>% filter(`10.5.1.10` != "Não se aplica") %>% group_by(`10.5.1.10`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Outro <- amostra_pes %>% filter(`10.5.1.11` != "Não se aplica") %>% group_by(`10.5.1.11`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Outro_qual <- amostra_pes %>% filter(`10.5.1_Outro` != "Não se aplica") %>% group_by(`10.5.1_Outro`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # Com que frequência semanal você faz uso dessa(s) droga(s)? freq_substâncias_rua <- amostra_pes %>% group_by(`10.5.2`) %>% filter(`10.5.2` != "Não se aplica") %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # Você já fez/faz tratamento para uso de drogas? # E agora, na rua, você usa álcool, cigarro ou outro tipo de droga? tratamento <- amostra_pes %>% group_by(`10.6`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # Funcionalidades adultos ---- # Vou ler algumas ações e você me diz se tem muita dificuldade ou se não consegue fazer de jeito nenhum: Enxergar <- amostra_pes %>% group_by(`11.1.1`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Ouvir <- amostra_pes %>% group_by(`11.1.2`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Andar <- amostra_pes %>% group_by(`11.1.3`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Lembrar <- amostra_pes %>% group_by(`11.1.4`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) fazer_cuidados_pessoais <- amostra_pes %>% group_by(`11.1.5`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) comunicar <- amostra_pes %>% group_by(`11.1.6`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) não_tem_dificuldade <- amostra_pes %>% group_by(`11.1.7`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # Proporção dos que têm e não têm doença resultado <- amostra_pes %>% summarise( prop_tem_doenca = survey_mean(tem_doenca, na.rm = TRUE, vartype = "cv"), prop_nao_tem = survey_mean(1 - tem_doenca, na.rm = TRUE, vartype = "cv") ) summary(amostra_pes$variables$te) # Em que local você vai quando precisa de atendimento médico? # 1) Empilha todas as colunas 10.2.1 a 10.2_Outro (mantendo todos os registros) amostra_long <- amostra %>% select(ID, fator, `10.2.1`:`10.2_Outro`) %>% pivot_longer( cols = `10.2.1`:`10.2_Outro`, names_to = "Alternativa", values_to = "Resposta" ) # 2) Cria o design ponderado e a variável booleana “marcou” amostra_pes_long_srv <- svydesign( id = ~ID, weights = ~fator, data = amostra_long ) %>% as_survey() %>% mutate( # 1 = marcou (ou seja, não caiu em “Não selecionou” ou “Não se aplica”) marcou = if_else( Resposta %in% c("Não se aplica", "Não selecionou"), 0L, 1L ) ) # 3) Agrupa por Alternativa e calcula total ponderado + proporção + CVs Atendimento_médico <- amostra_pes_long_srv %>% group_by(Alternativa) %>% summarise( # soma ponderada de quem marcou cada Alternativa (n_ponderado) e CV n_ponderado = survey_total(marcou, vartype = "cv", na.rm = TRUE), # proporção daqueles que marcaram (pct_marcou) e CV dela pct_marcou = survey_mean(marcou, vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( # extrai o valor numérico (soma de pesos) e CV do total n_ponderado = round(as.numeric(n_ponderado)), n_ponderado_cv = n_ponderado_cv, # extrai a proporção e multiplica CV por 100 para virar % percentual = as.numeric(pct_marcou), cv = pct_marcou_cv * 100 ) %>% select(Alternativa, n_ponderado, n_ponderado_cv, percentual, cv) %>% arrange(desc(n_ponderado)) # Por qual/quais motivo(s) você não procura um serviço de saúde? # 1) Empilha todas as colunas 10.3.1 a 10.3_Outro amostra_long <- amostra %>% select(ID, fator, `10.3.1`:`10.3_Outro`) %>% pivot_longer( cols = `10.3.1`:`10.3_Outro`, names_to = "Alternativa", values_to = "Resposta" ) # 2) Constrói o design ponderado amostra_pes_long_srv <- svydesign( id = ~ID, weights = ~fator, data = amostra_long ) %>% as_survey() # 3) Para cada linha, vamos: # - primeiro excluir os “Não se aplica” (eles não entram no denominador) # - depois marcar “Sim=1” apenas quem de fato escolheu algo diferente de “Não selecionou” # - quem respondeu “Não selecionou” vira 0, e “Sim” vira 1 amostra_pes_long_srv <- amostra_pes_long_srv %>% filter(Resposta != "Não se aplica") %>% mutate( marcou = if_else(Resposta == "Não selecionou", 0L, 1L) ) # 4) Agrupa por Alternativa e calcula n_ponderado e % que marcou (com seus CVs) Não_procura_médico <- amostra_pes_long_srv %>% group_by(Alternativa) %>% summarise( # A soma de pesos apenas dos que têm marcou=1 → n_ponderado n_ponderado = survey_total(marcou, vartype = "cv", na.rm = TRUE), # A proporção (média ponderada) de marcou=1 → pct_marcou pct_marcou = survey_mean(marcou, vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% # Extrai os valores corretos e monta as colunas finais mutate( n_ponderado = round(as.numeric(n_ponderado)), n_ponderado_cv = n_ponderado_cv, percentual = as.numeric(pct_marcou), # de 0 a 1; por ex, 0.3397 = 33,97% cv = pct_marcou_cv * 100 # CV em % ) %>% select(Alternativa, n_ponderado, n_ponderado_cv, percentual, cv) %>% arrange(desc(n_ponderado)) Outro_10.3 <- amostra_pes %>% filter(`10.3_Outro` != "Não se aplica", `10.3_Outro` != "Não selecionou") %>% group_by(`10.3_Outro`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # Menstruação ---- # Você menstrua? menstrua <- amostra_pes %>% filter(`12.1` != "Não se aplica") %>% group_by(`12.1`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # No período menstrual, você usa absorventes? Uso_absorventes <- amostra_pes %>% filter(`12.2.1` != "Não se aplica") %>% group_by(`12.2.1`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Uso_coletores <- amostra_pes %>% filter(`12.2.2` != "Não se aplica") %>% group_by(`12.2.2`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Uso_papel <- amostra_pes %>% filter(`12.2.3` != "Não se aplica") %>% group_by(`12.2.3`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # 1. Transformar para formato longo (antes da ponderação) # Converter os dados para formato longo na base original amostra_long <- amostra %>% select(ID, fator, `12.2.1`:`12.2_Outro`) %>% pivot_longer( cols = `12.2.1`:`12.2_Outro`, names_to = "Alternativas", values_to = "Resposta" ) %>% filter(!Resposta %in% c("Não selecionou", "Não se aplica")) # Criar objeto survey design a partir dos dados transformados amostra_pes_long <- survey::svydesign( id = ~ID, weights = ~fator, nest = TRUE, data = amostra_long ) amostra_pes_long_srv <- as_survey(amostra_pes_long) # 3. Calcular n ponderado, proporção e CV resultado_absorventes <- amostra_pes_long_srv %>% group_by(Alternativas, Resposta) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% # remove o agrupamento para que sum(n_ponderado) seja calculado em todo o conjunto mutate( n_ponderado = round(as.numeric(n_ponderado)), # Converte para numérico (se necessário) e arredonda proporcao = n_ponderado / sum(n_ponderado), # Proporção em relação a todas as respostas válidas cv = n_ponderado_cv * 100 # CV em porcentagem ) %>% arrange(desc(n_ponderado)) # Onde consegue? Doações <- amostra_pes %>% filter(`12.3.1` != "Não se aplica") %>% group_by(`12.3.1`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) serv_acolhimento <- amostra_pes %>% filter(`12.3.2` != "Não se aplica") %>% group_by(`12.3.2`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Centro_Pop <- amostra_pes %>% filter(`12.3.3` != "Não se aplica") %>% group_by(`12.3.3`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Farmácia_pop <- amostra_pes %>% filter(`12.3.6` != "Não se aplica") %>% group_by(`12.3.6`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) Comprando <- amostra_pes %>% filter(`12.3.8` != "Não se aplica") %>% group_by(`12.3.8`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado)) # Você está grávida atualmente? gravidez <- amostra_pes %>% filter(`12.4` != "Não se aplica") %>% group_by(`12.4`) %>% summarise( n_ponderado = survey_total(vartype = "cv", na.rm = TRUE) ) %>% ungroup() %>% mutate( n_ponderado = round(as.numeric(n_ponderado)), # total arredondado proporcao = n_ponderado / sum(n_ponderado), # proporção simples ) %>% arrange(desc(n_ponderado))