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] 3paste() 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"Sfida
FacileCompleta 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")
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Sottostringhe con substr()Formattazione con sprintf()Dividere e unireRicerca nelle stringheSostituzione del testoRipasso - Generatore di nomi utente4Matrici
Creazione di matriciIndicizzazione delle matriciRiepiloghi di righe e colonneOperazioni aritmetiche con le matriciRipasso - Schema dei posti a sedere10Flusso di controllo avanzato
La funzione switch()ifelse() vettorialerepeat e breakFunzioni ricorsiveRiepilogo - Classificatore di voti2Ricerche chiave-valore
Ricerche in vettori con nomiControllare le chiaviAggiungere e rimuovere chiaviIterare sui nomiRiepilogo - Sportello titoli5Progetto - Registro dei voti
Aggiungere studentiRegistrare i voti8Ordinamento e raggruppamento
Ordinare i vettoriOrdinare in base a una chiaveRaggruppare con split()Riepiloghi dei gruppiRipasso - Classifica3Insiemi e conteggio
Valori univociOperazioni sugli insiemiTest di appartenenzaConteggio con table()Riepilogo - Ospiti dell’evento6Le funzioni come valori
Funzioni anonimePassare funzioniRestituire funzioniClosure con statoRiepilogo - Regole di sconto9DataFrame
Creare DataFrameColonne e righeFiltrare le righeAggiungere e ordinareRiepilogo - Report delle vendite12Progetto - Gestione delle spese
Registrare le speseSpesa totaleEsercitati da solo: Compilatore R online