Menu
Coddy logo textTech

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 FALSE

Sostituzione 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!"
quiz iconMettiti alla prova

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

quiz iconMettiti alla prova

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

quiz iconMettiti alla prova

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

challenge icon

Sfida

Facile

Crea 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:

  1. Estrai il nome utente (la parte prima di @) da ciascun indirizzo email
  2. Sostituisci eventuali numeri nei nomi utente con un trattino basso (_)
    • Usa str_replace_all() con il pattern \\d per sostituire tutte le cifre. Ad esempio: str_replace_all(username, "\\d", "_")
  3. 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.
  4. Rimuovi eventuali spazi vuoti iniziali o finali dai nomi utente elaborati
  5. 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 = ", ")

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