# IMPORTAR BANCO DE DAdos
df <- read_xlsx("lung2026.xlsx")
# AJUSTAR NOMES DE VARIAVEIS
df <- df %>%
  clean_names()

#Renomear as variáveis
df <- df %>%
  rename(
    cvf = cvf_prbd,           ## o primeiro nome é o que deseja renomear, o segundo o nome atual da coluna
    vef1 = vef1_prbd,
    cvf_pct = cvf_percent,
    vef1_pre_pct = vef1_pre_percent,
    vef1_pos_pct = vef1_pos_percent,
    escolaridade_mae = escolaridade_da_mae,
    tipo_servico = tipo_de_servico,
    tipo_parto = tipo_de_parto,
    area_residencia = area_da_residencia,
    adesao_tratamento = adesao_ao_tratamento,
    animais_domesticos = animais_domesticos_em_casa,
    exposicao_mofo = exposicao_ao_mofo,
    exacerbacoes_ano = exacerbacoes_no_ultimo_ano,
    hospitalizacoes_ano = hospitalizacoes_no_ultimo_ano,
    emergencia_ano = idas_a_emergencia_no_ultimo_ano,
    exercicio_semana = numero_de_dias_de_exercicio_na_semana)

# Remover variavel cpf 
df <- df %>% dplyr::select(-cpf)
# LIMPEZA DE DADOS

# Raça

df <- df %>%
  mutate(raca = tolower(raca),
         raca = dplyr::case_when(
           raca %in% c("amarelo", "amarela") ~ "amarela",
           raca %in% c("branco", "branca") ~ "branca",
           raca %in% c("indigena", "indígena") ~ "indigena",
           raca %in% c("pardo", "parda") ~ "parda",
           raca %in% c("preto", "preta") ~ "preta",
           TRUE ~ raca))
table(df$raca)
## 
##  amarela   branca indigena    parda    preta 
##      134     1472      112      668      276
#Tabagismo passivo

df <- df %>%
  mutate(tabagismo_passivo = tolower(tabagismo_passivo), # deixa todos os textos 
         tabagismo_passivo = stri_trans_general(tabagismo_passivo, "Latin-ASCII"),  ## remove acentos
         tabagismo_passivo = trimws(tabagismo_passivo), ## remove espaços em branco
         tabagismo_passivo = case_when(
           tabagismo_passivo %in% c("sim", "simm") ~ "sim",
           tabagismo_passivo %in% c("nao") ~ "nao",
           TRUE ~ NA_character_))
table(df$tabagismo_passivo)
## 
##  nao  sim 
## 1587 1075
#Tipo de serviço

df <- df %>%
  mutate(tipo_servico = tolower(tipo_servico),
         tipo_servico = stri_trans_general(tipo_servico, "Latin-ASCII"),
         tipo_servico = trimws(tipo_servico),
         tipo_servico = case_when(
           tipo_servico %in% c("publico", "publico sistema unico de saude", "sus") ~ "publico",
           tipo_servico %in% c("privado","particular") ~ "privado",
           TRUE ~ NA_character_))
table(df$tipo_servico)
## 
## privado publico 
##     785    1837
#Tipo de parto


df <- df %>%
  mutate(tipo_parto = tolower(tipo_parto),
         tipo_parto = stri_trans_general(tipo_parto, "Latin-ASCII"),
         tipo_parto = trimws(tipo_parto),
         tipo_parto = case_when(
           tipo_parto %in% c("cesarea", "cesaria", "cesar", "cesareo",
                             "parto ces", "parto cesarea", "parto cesareo",
                             "parto cesario", "cesaria + forceps", "cesarea + forceps") ~ "cesarea",
           tipo_parto %in% c("vaginal", "pvag", "natural", "parteira") ~ "vaginal",
           TRUE ~ NA_character_))
table(df$tipo_parto)
## 
## cesarea vaginal 
##    1468    1143
#Área de residencia

df <- df %>%
  mutate(area_residencia = tolower(area_residencia),
         area_residencia = stri_trans_general(area_residencia, "Latin-ASCII"),
         area_residencia = trimws(area_residencia),
         area_residencia = case_when(
           area_residencia == "rural" ~ "rural",
           area_residencia %in% c("urbana", "urbano") ~ "urbana",
           TRUE ~ NA_character_))
table(df$area_residencia)
## 
##  rural urbana 
##    522   2140
#Adesão ao tratamento

df <- df %>%
  mutate(adesao_tratamento = tolower(adesao_tratamento),
         adesao_tratamento = stri_trans_general(adesao_tratamento, "Latin-ASCII"),
         adesao_tratamento = trimws(adesao_tratamento),
         adesao_tratamento = case_when(
           adesao_tratamento %in% c("alta", "alto") ~ "alta",
           adesao_tratamento %in% c("media", "medio") ~ "media",
           adesao_tratamento %in% c("baixa", "baixo") ~ "baixa",
           TRUE ~ NA_character_))
table(df$adesao_tratamento)
## 
##  alta baixa media 
##   906   556   812
# Sexo

df <- df %>%
  mutate(
    sexo = tolower(sexo),
    sexo = stri_trans_general(sexo, "Latin-ASCII"),
    sexo = trimws(sexo),
    sexo = case_when(
      sexo %in% c("fem", "female") ~ "feminino",
      sexo %in% c("male") ~ "masculino",
      TRUE ~ NA_character_))
table(df$sexo)
## 
##  feminino masculino 
##      1249      1413
str(df)
## tibble [2,662 × 28] (S3: tbl_df/tbl/data.frame)
##  $ id                 : num [1:2662] 1 2 3 4 5 6 7 8 9 10 ...
##  $ sexo               : chr [1:2662] "masculino" "masculino" "masculino" "masculino" ...
##  $ idade              : num [1:2662] 7.2 7.3 7.3 7.3 7.4 7.4 7.4 7.5 7.7 8.1 ...
##  $ raca               : chr [1:2662] "branca" "parda" "branca" "preta" ...
##  $ peso               : num [1:2662] 20.2 25.5 26 30 22.9 19 24 25 30.2 26.3 ...
##  $ altura             : num [1:2662] 116 127 128 140 126 ...
##  $ cvf                : num [1:2662] 1.44 1.64 2.22 2.42 1.61 ...
##  $ vef1               : num [1:2662] 1.44 1.44 2.04 2.19 1.51 ...
##  $ cvf_pct            : num [1:2662] 113.4 98.6 130.7 113.9 98 ...
##  $ vef1_pre_pct       : num [1:2662] 138 103 143 121 109 ...
##  $ vef1_pos_pct       : num [1:2662] 137 104 153 123 112 ...
##  $ imc                : num [1:2662] 14.9 15.8 15.9 15.4 14.3 ...
##  $ doenca             : chr [1:2662] "controles" "controles" "controles" "controles" ...
##  $ escolaridade_mae   : chr [1:2662] "médio completo" "médio incompleto" "fundamental incompleto" "médio incompleto" ...
##  $ tabagismo_passivo  : chr [1:2662] "sim" "nao" "nao" "sim" ...
##  $ tipo_servico       : chr [1:2662] "publico" "privado" "publico" "privado" ...
##  $ tipo_parto         : chr [1:2662] "cesarea" "vaginal" "cesarea" "vaginal" ...
##  $ idade_gestacional  : num [1:2662] 42 38 41 42 38 36 40 42 38 41 ...
##  $ area_residencia    : chr [1:2662] "urbana" "urbana" "urbana" "rural" ...
##  $ adesao_tratamento  : chr [1:2662] NA NA NA NA ...
##  $ animais_domesticos : num [1:2662] 1 2 0 3 4 1 0 3 0 0 ...
##  $ exposicao_mofo     : chr [1:2662] "não" "sim" "não" "sim" ...
##  $ dispneia_mrc       : num [1:2662] 0 0 0 0 0 0 0 0 0 0 ...
##  $ exacerbacoes_ano   : num [1:2662] 0 0 0 0 0 0 0 0 0 0 ...
##  $ hospitalizacoes_ano: num [1:2662] 0 0 0 0 0 0 0 0 0 0 ...
##  $ emergencia_ano     : num [1:2662] 0 0 0 0 0 0 0 0 0 0 ...
##  $ exercicio_semana   : num [1:2662] 1 4 1 6 6 0 2 6 3 2 ...
##  $ medicacao_diaria   : chr [1:2662] "nenhum" "nenhum" "nenhum" "nenhum" ...
# Transformando variáveis categóricas de caractere para fator

df <- df %>%
  mutate(
    sexo               = as.factor(sexo),
    raca               = as.factor(raca),
    doenca             = as.factor(doenca),
    escolaridade_mae   = as.factor(escolaridade_mae),
    tabagismo_passivo  = as.factor(tabagismo_passivo),
    tipo_servico       = as.factor(tipo_servico),
    tipo_parto         = as.factor(tipo_parto),
    area_residencia    = as.factor(area_residencia),
    adesao_tratamento  = as.factor(adesao_tratamento),
    exposicao_mofo     = as.factor(exposicao_mofo),
    medicacao_diaria   = as.factor(medicacao_diaria))

1. Caracterização Demográfica Basal

O presente segmento detalha as características demográficas da coorte no momento do recrutamento basal. A integridade estrutural deste relatório é gerada de forma reprodutível, extraindo os dados estritamente do objeto de dados principal (df).

A coorte avaliada é composta por um total de 2662 indivíduos pediátricos e adolescentes. É composta por 570 portadores de asma, 100 portadores de asma grave, 1604 portadores com confirmação genética de fibrose cística e 388 controles sadios totalizando 2662 indivíduos.

A estratificação por sexo demonstrou a inclusão de 1413 pacientes do sexo masculino (representando 53.1% da amostra) e 1249 pacientes do sexo feminino (46.9%).

A avaliação etária da população de estudo demonstrou uma média de 9.8 anos, com um desvio padrão (DP) associado de 2.7 anos. Adicionalmente, a biometria basal indicou um Índice de Massa Corporal (IMC) médio de 18.9 kg/m² (DP ± 3.7).

2. Perfil Clínico e Função Pulmonar

A avaliação espirométrica da linha de base apresentou os seguintes resultados médios globais para os volumes pulmonares estáticos e fluxos dinâmicos:

  • Volume Expiratório Forçado no 1º segundo (VEF1) pré-broncodilatador: Média de 1.7 Litros (DP ± 0.7).
  • Capacidade Vital Forçada (CVF) em percentual do previsto (CVF %): Média de 94.9% (DP ± 20.4).