Substituindo Texto
Parte da seção Lógica e Fluxo do Journey de R da Coddy. Lição 5 de 64.
sub(pattern, replacement, x) substitui a primeira ocorrência em cada string, e gsub() substitui todas as ocorrências. Assim como grepl(), fixed = TRUE trata o padrão como texto simples.
date <- "2024-01-15"
print(sub("-", "/", date, fixed = TRUE))
print(gsub("-", "/", date, fixed = TRUE))Saída:
[1] "2024/01-15"
[1] "2024/01/15"Substituir por uma string vazia exclui as correspondências. Isso limpa o texto antes de convertê-lo em um número:
price <- "$1,299.00"
clean <- gsub(",", "", sub("$", "", price, fixed = TRUE), fixed = TRUE)
print(clean)
print(as.numeric(clean) * 2)Saída:
[1] "1299.00"
[1] 2598Sem fixed = TRUE, o padrão é uma expressão regular. Duas partes úteis: [0-9] corresponde a qualquer dígito, e + repete a parte anterior uma ou mais vezes, então " +" corresponde a uma sequência de espaços.
msg <- "call me at 555 0199"
print(gsub(" +", " ", msg))
print(gsub("[0-9]", "#", msg))Saída:
[1] "call me at 555 0199"
[1] "call me at ### ####"Assim como as outras funções de string, sub() e gsub() funcionam em cada elemento de um vetor:
codes <- c("a-1", "b-22", "c-3")
print(gsub("-", "", codes, fixed = TRUE))
print(sub("-[0-9]+", "", codes))Saída:
[1] "a1" "b22" "c3"
[1] "a" "b" "c"Desafio
FácilComplete slugify(title). Retorne o título em letras minúsculas, sem espaços no início ou no fim, e com cada sequência de espaços substituída por um único -: Hello World torna-se hello-world.
O código fornecido lê o título e imprime o valor retornado.
Experimente você mesmo
slugify <- function(title) {
# Escreva seu código aqui
title
}
# Código de entrada/saída fornecido: mantenha-o como está
input <- suppressWarnings(readLines(file("stdin")))
cat(slugify(input[1]), sep = "\n")
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Strings em Profundidade
Substrings com substr()Formatação com sprintf()Dividindo e UnindoPesquisando StringsSubstituindo TextoRecapitulação - Criador de Nome de Usuário4Matrizes
Criando MatrizesIndexando MatrizesResumos de Linhas e ColunasAritmética de MatrizesRecapitulação - Tabela de Assentos10Fluxo de Controle Avançado
A Função switch()ifelse() Vetorizadorepeat e breakFunções RecursivasRevisão — Classificador de Notas2Consultas de Chave-Valor
Consultas em Vetores NomeadosVerificando ChavesAdicionando e Removendo ChavesPercorrendo NomesRecapitulação - Mesa de Ações5Projeto - Boletim de Notas
Adicionando AlunosRegistrando Notas3Conjuntos e Contagem
Valores ÚnicosOperações com ConjuntosTestes de PertinênciaContagem com table()Recapitulação - Convidados do Evento6Funções como Valores
Funções AnônimasPassando FunçõesRetornando FunçõesClosures com EstadoRecapitulação - Regras de Desconto9Data Frames
Criando Data FramesColunas e LinhasFiltrando LinhasAdicionando e OrdenandoRecapitulação - Relatório de Vendas12Projeto - Rastreador de Despesas
Registro de DespesasGastos TotaisPratique por conta própria: Compilador de R online