Menu
CoddyTech

Dividere e unire

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

strsplit(x, split) divide 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 i componenti 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 il testo collapse tra di essi. sep viene inserito tra gli argomenti, elemento per elemento.

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

Risultato:

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

Il testo inserito spesso contiene spazi intorno 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) {
  # Scrivi qui il tuo codice
  line
}

# Codice di input/output fornito: lascialo così com'è
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