Olá Thales, tudo bem?
Uma alternativa para solucionar esse problema, é converter todas as idades para uma única unidade de medida, como anos, por exemplo. Isso facilitará a análise e garantirá que você não perca informações.
- Primeiro, você precisa identificar e separar as diferentes unidades de medida. Você pode fazer isso utilizando a função
grepl
para criar novas colunas lógicas que identifiquem se a idade está em anos, meses, dias, décadas ou semanas.
dados$ano <- grepl("ano", dados$idade)
dados$mes <- grepl("mês", dados$idade)
dados$semana <- grepl("semana", dados$idade)
- Em seguida, você pode converter todas as idades para anos. Caso a coluna
idade
inclua o número seguido da unidade (por exemplo, "2 anos", "5 meses", etc.). Você pode extrair o número e realizar a conversão apropriada.
# Função extrair o número da idade
extrair_numero <- function(idade) {
as.numeric(gsub("[^0-9]", "", idade))
}
# função para extrair o número
dados$idade_num <- sapply(dados$idade, extrair_numero)
# Convertendo tudo para anos
dados$idade_anos <- ifelse(dados$ano, dados$idade_num,
ifelse(dados$mes, dados$idade_num / 12,
ifelse(dados$dia, dados$idade_num / 365,
ifelse(dados$decada, dados$idade_num * 10,
ifelse(dados$semana, dados$idade_num / 52, NA)))))
Você também pode tratar as células em branco.
dados$idade_anos[is.na(dados$idade_anos)] <- NA # ou escolha um valor específico
No entanto, apenas ressalto que esses códigos são sugestões, talvez seja necessário fazer algumas adaptações para se adequar ao seu projeto.
Espero ter ajudado.
Qualquer dúvida, compartilhe no fórum.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!