No dia a dia, é muito comum trabalharmos com textos. Nomes, descrições, códigos. Funções são excelentes para padronizar e manipular esses textos.
Problema: Você tem uma lista de nomes de pacientes ou amostras, mas alguns estão em letras minúsculas, outros em maiúsculas, e alguns têm espaços extras no início ou no final. Para uma análise consistente, você precisa padronizá-los.
# Usando funções nativas do R para processamento de texto:nomes_brutos <-c(" maria silva ", "JOAO PEREIRA ", " ana souza", "BRUNO")print("Nomes originais:")
[1] "Nomes originais:"
print(nomes_brutos)
[1] " maria silva " "JOAO PEREIRA " " ana souza" "BRUNO"
# 1. Remover espaços em branco no início e fim (função trimws())nomes_sem_espacos <-trimws(nomes_brutos)print("\nNomes sem espaços extras:")
# 2. Converter para a primeira letra maiúscula e o restante minúscula (função própria!)# O R não tem uma função nativa para isso diretamente, então vamos criar a nossa!primeira_maiuscula <-function(texto) {# Primeiro, convertemos tudo para minúsculas texto_minusculo <-tolower(texto)# Pegamos a primeira letra e a transformamos em maiúscula primeira_letra <-toupper(substr(texto_minusculo, 1, 1))# Pegamos o restante do texto (da segunda letra em diante) resto_texto <-substr(texto_minusculo, 2, nchar(texto_minusculo))# Juntamos tudo texto_final <-paste0(primeira_letra, resto_texto)return(texto_final)}# Aplicando nossa função (usaremos um laço ou apply para múltiplos nomes depois!)nomes_padronizados <-sapply(nomes_sem_espacos, primeira_maiuscula)# O sapply é uma função que aplica uma função a cada elemento de um vetor/lista.# Veremos mais sobre ele em aulas futuras, mas aqui ele já é útil!cat("\nNomes padronizados (primeira letra maiúscula, sem espaços):")
Nomes padronizados (primeira letra maiúscula, sem espaços):
print(nomes_padronizados)
maria silva JOAO PEREIRA ana souza BRUNO
"Maria silva" "Joao pereira" "Ana souza" "Bruno"
# Percebeu como criamos nossa própria "ferramenta" para um problema específico?