Manipolazione delle stringhe
Lezione 12 di 14 del corso Manipolazione dei dati in R di Coddy.
Il pacchetto stringr fornisce un insieme completo di funzioni per lavorare con le stringhe.
Caricamento del pacchetto stringr
library(stringr)Corrispondenza dei pattern
La funzione str_detect() verifica se un pattern è presente in una stringa:
text <- c("apple", "banana", "cherry")
str_detect(text, "an") # Restituisce: FALSE TRUE FALSESostituzione di stringhe
La funzione str_replace() sostituisce la prima occorrenza di un pattern:
text <- "Hello world"
str_replace(text, "world", "R") # Restituisce: "Hello R"Suddivisione delle stringhe
Suddividi le stringhe in un vettore di caratteri con str_split():
text <- "apple,banana,cherry"
str_split(text, ",") # Restituisce una lista: list("apple", "banana", "cherry")Rimozione degli spazi bianchi
Rimuovi gli spazi bianchi iniziali e finali usando str_trim():
text <- " Hello, R! "
str_trim(text) # Restituisce: "Hello, R!"Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
FacileCrea una funzione che elabori un elenco di indirizzi email utilizzando tecniche di manipolazione delle stringhe dal pacchetto stringr. La funzione deve eseguire le seguenti operazioni:
- Estrai il nome utente (la parte prima di @) da ciascun indirizzo email
- Sostituisci eventuali numeri nei nomi utente con un trattino basso (_)
- Usa
str_replace_all()con il pattern\\dper sostituire tutte le cifre. Ad esempio:str_replace_all(username, "\\d", "_")
- Usa
- Metti in maiuscolo la prima lettera di ciascun nome utente
- Puoi usare la funzione
str_to_title(). Questa mette in maiuscolo la prima lettera di ogni parola in una stringa.
- Puoi usare la funzione
- Rimuovi eventuali spazi vuoti iniziali o finali dai nomi utente elaborati
- Restituisci i nomi utente elaborati come stringa separata da virgole
- Usa
str_c()con l'argomento collapse per unire i nomi utente. Ad esempio:str_c(usernames, collapse = ", ")
- Usa
Provalo tu
# Leggi l'input
con <- file("stdin", "r")
email_list <- suppressWarnings(readLines(con))
suppressPackageStartupMessages(library(stringr))
process_emails <- function(email_list) {
# Dividi l'elenco delle email in singoli indirizzi email
emails <- str_split(email_list, ",\\s*")[[1]]
# TODO: Scrivi qui sotto il codice per elaborare gli indirizzi email
# 1. Estrai i nomi utente
# 2. Sostituisci i numeri con trattini bassi
# 3. Metti in maiuscolo la prima lettera
# 4. Rimuovi gli spazi iniziali e finali
# 5. Unisci i nomi utente elaborati separandoli con virgole
# Segnaposto per i nomi utente elaborati
processed_usernames <- ""
# Restituisci i nomi utente elaborati come stringa separata da virgole
return(processed_usernames)
}
# Chiama la funzione e stampa il risultato
result <- process_emails(email_list)
cat(result)Tutte le lezioni di Manipolazione dei dati in R
Esercitati da solo: Compilatore R online