Prezadxs, olá!
Estou com um problema na extração de sentenças de uma coluna. Basicamente é uma extração de tabela em formato de texto, ai as colunas vêm todas bagunçadas e não estou conseguindo resolver o problema para duas delas: região e município.
Essas duas colunas ficaram unidas em apenas uma, da seguinte forma: Região MUNICÍPIO
. Com o nome da região contendo a primeira letra maiúscula e o restante minúsculo, o município em caixa alta.
Tentei algumas coisas com regex, trabalhando com "[a-z]"
e "[A-Z]"
porém não consegui capturar muito bem, sempre faltava algo. O que fiz pra resolver foi usar a função stringr::word
para extrair as sentenças de acordo com a ordem delas.
Contudo, essa resolução não se mostrou factível para ser usada na coluna da tabela, pois tenho situações onde a primeira palavra por exemplo já é o MUNICÍPIO, por não ter região, e outras onde a ordem muda ou tem apenas a região. Acredito que a melhor forma seja alguma coisa com regex.
Dúvida: alguém poderia auxiliar na construção dessa regex para separar essas informações de região e município, por gentileza?
Deixo em seguida um exemplo de uma situação da tabela (que funciona, porém não é reproduzível para a coluna inteira, pois gera muitos erros).
# instalar e carregar pacote
# install.packages("stringr")
# library(stringr)
# string de exemplo
str_texto <- "Médio-Norte SÃO JOSÉ DO RIO CLARO"
# extrair a primeira palavra (primeira letra maiúscula e restante minúsculo)
regiao <- stringr::word(str_texto)
regiao
#> [1] "Médio-Norte"
# extrair o município (em caixa alta)
municipio <- stringr::word(str_texto, start = 2, end =6)
municipio
#> [1] "SÃO JOSÉ DO RIO CLARO"
Created on 2021-07-18 by the reprex package (v2.0.0)
Agradeço qualquer ajuda!
Abraços.