Menu
Coddy logo textTech

Dividere e unire

Fa parte della sezione Logica e flusso del percorso R di Coddy. Lezione 3 di 64.

strsplit(x, split) suddivide una stringa in corrispondenza di ogni separatore. Restituisce una lista con un vettore di caratteri per ogni stringa di input, quindi usa [[1]] per ottenere le parti di una singola stringa.

csv <- "red,green,blue"
parts <- strsplit(csv, ",")[[1]]
print(parts)
print(length(parts))

Output:

[1] "red"   "green" "blue" 
[1] 3

paste() funziona al contrario. Con collapse, unisce gli elementi di un vettore in un'unica stringa, inserendo tra loro il testo collapse. sep viene inserito tra gli argomenti, elemento per elemento.

words <- c("one", "two", "three")
print(paste(words, collapse = "-"))
print(paste(words, 1:3, sep = "_"))

Output:

[1] "one-two-three"
[1] "one_1"   "two_2"   "three_3"

Il testo di input contiene spesso spazi attorno ai separatori. trimws() rimuove gli spazi all'inizio e alla fine di ogni elemento:

raw <- "  apples , pears,plums  "
items <- trimws(strsplit(raw, ",")[[1]])
print(items)
print(paste(rev(items), collapse = " | "))

Output:

[1] "apples" "pears"  "plums" 
[1] "plums | pears | apples"

strsplit() su un vettore restituisce un elemento della lista per ogni stringa, quindi ogni riga di input mantiene i propri elementi:

lines <- c("a,b", "c,d,e")
parts <- strsplit(lines, ",")
print(length(parts))
print(parts[[2]])

Output:

[1] 2
[1] "c" "d" "e"
challenge icon

Sfida

Facile

Completa hashtags(line). La riga contiene tag separati da virgole, eventualmente con spazi intorno. Restituisci un'unica stringa con ogni tag preceduto da #, separati da singoli spazi: r, data ,stats diventa #r #data #stats.

Il codice fornito legge la riga e stampa il valore restituito.

Provalo tu

hashtags <- function(line) {
  # Escribe tu código aquí
  line
}

# Código de entrada/salida proporcionado: mantenlo tal como está
input <- suppressWarnings(readLines(file("stdin")))
cat(hashtags(input[1]), sep = "\n")
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore R online