Dividindo e Unindo
Parte da seção Lógica e Fluxo do Journey de R da Coddy. Lição 3 de 64.
strsplit(x, split) divide uma string em cada separador. Ela retorna uma lista com um vetor de caracteres para cada string de entrada; portanto, use [[1]] para obter as partes de uma única string.
csv <- "red,green,blue"
parts <- strsplit(csv, ",")[[1]]
print(parts)
print(length(parts))Saída:
[1] "red" "green" "blue"
[1] 3paste() funciona ao contrário. Com collapse, ele une os elementos de um vetor em uma única string, com o texto de collapse entre eles. sep fica entre os argumentos, elemento por elemento.
words <- c("one", "two", "three")
print(paste(words, collapse = "-"))
print(paste(words, 1:3, sep = "_"))Saída:
[1] "one-two-three"
[1] "one_1" "two_2" "three_3"O texto de entrada geralmente contém espaços ao redor dos separadores. trimws() remove os espaços no início e no fim de cada elemento:
raw <- " apples , pears,plums "
items <- trimws(strsplit(raw, ",")[[1]])
print(items)
print(paste(rev(items), collapse = " | "))Saída:
[1] "apples" "pears" "plums"
[1] "plums | pears | apples"strsplit() em um vetor retorna um elemento de lista por string, portanto cada linha de entrada mantém suas próprias partes:
lines <- c("a,b", "c,d,e")
parts <- strsplit(lines, ",")
print(length(parts))
print(parts[[2]])Saída:
[1] 2
[1] "c" "d" "e"Desafio
FácilComplete hashtags(line). A linha contém tags separadas por vírgulas, possivelmente com espaços ao redor delas. Retorne uma única string com cada tag prefixada por #, separadas por espaços simples: r, data ,stats torna-se #r #data #stats.
O código fornecido lê a linha e imprime o valor retornado.
Experimente você mesmo
hashtags <- function(line) {
# Escreva seu código aqui
line
}
# Código de entrada/saída fornecido: mantenha-o como está
input <- suppressWarnings(readLines(file("stdin")))
cat(hashtags(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