Le funzioni gsub() e sub() in R sono facili da usare e com­bi­na­bi­li con altre funzioni di R per eseguire complesse ma­ni­po­la­zio­ni dei testi. Queste funzioni possono essere integrate di­ret­ta­men­te in analisi dei dati e calcoli sta­ti­sti­ci.

A cosa servono gsub() e sub() in R?

Le funzioni gsub() e sub() in R servono a so­sti­tui­re modelli all’interno di sequenze di caratteri. La funzione sub(), ab­bre­via­zio­ne dell’inglese “sub­sti­tu­te”, consente di trovare la prima oc­cor­ren­za di un dato modello in una sequenza di caratteri e di so­sti­tuir­la con un’altra espres­sio­ne. Si tratta quindi di una so­sti­tu­zio­ne singola. La funzione gsub(), invece, sta per “global sub­sti­tu­te”. Questo metodo cerca tutte le oc­cor­ren­ze di un modello spe­ci­fi­ca­to all’interno di una stringa e le so­sti­tui­sce glo­bal­men­te con un’altra espres­sio­ne.

Entrambe le funzioni sono molto uti­liz­za­te per la pulizia e la tra­sfor­ma­zio­ne dei dati. Il loro scopo prin­ci­pa­le è la rimozione di modelli in­de­si­de­ra­ti o l’adat­ta­men­to di dati sotto forma di testo. Le funzioni gsub() e sub() in R svolgono quindi un compito fon­da­men­ta­le per la ma­ni­po­la­zio­ne dei testi in analisi sta­ti­sti­che o in ap­pli­ca­zio­ni di ap­pren­di­men­to au­to­ma­ti­co in R. In questi campi è possibile uti­liz­za­re gsub() e sub() per estrarre de­ter­mi­na­ti modelli oppure per tra­sfor­ma­re i dati in un formato idoneo per l’analisi.

La sintassi di gsub() e sub() in R

La sintassi di gsub() e sub() in R è piuttosto simile per entrambe le funzioni. Entrambi i metodi accettano i seguenti parametri:

  • pattern: questo è il modello da cercare, sotto forma di stringa o di espres­sio­ne regolare
  • re­pla­ce­ment: l’espres­sio­ne che deve so­sti­tui­re il modello trovato
  • x: vettore o frame di dati (data frame) in cui eseguire la ricerca e la so­sti­tu­zio­ne

La struttura di gsub() in R

gsub(pattern, replacement, x)
R

La sintassi fon­da­men­ta­le di sub() in R

sub(pattern, replacement, x)
R

Esempi pratici per gsub() in R

La scelta fra sub() e gsub() dipende dalle esigenze di so­sti­tu­zio­ne del modello. La par­ti­co­la­ri­tà gsub() in R è la pos­si­bi­li­tà di in­di­vi­dua­re e so­sti­tui­re tutte le oc­cor­ren­ze di un modello.

Rimozione di spazi vuoti

Ad esempio, con gsub() è possibile ripulire le stringhe eli­mi­nan­do gli spazi vuoti superflui.

sentence <- "  Data Science  is  powerful.  "
clean_sentence <- gsub("\\s+", " ", sentence)
cat(clean_sentence)
R

Il risultato che otteniamo è il seguente:

"Data Science is powerful."
R

L’espres­sio­ne regolare \\s+ cor­ri­spon­de a uno o più spazi vuoti con­se­cu­ti­vi e permette quindi di rimuovere ef­fi­ca­ce­men­te gli spazi dalla frase.

So­sti­tu­zio­ne di numeri di telefono

La funzione gsub() in R è un metodo pratico per ano­ni­miz­za­re o rimuovere dati sensibili, come i numeri di telefono.

text <- "Contact us at 123-456-7890 for more information."
modified_text <- gsub("\\d{3}-\\d{3}-\\d{4}", "redacted phone number", text)
cat(modified_text)
R

Output:

"Contact us at redacted phone number for more information."
R

In questo esempio uti­liz­zia­mo l’espres­sio­ne regolare \\d{3}-\\d{3}-\\d{4} per estrarre il numero di telefono e so­sti­tui­re tutte le cifre nella stringa text con il se­gna­po­sto "redacted phone number".

Esempi di ap­pli­ca­zio­ne per sub() in R

Se desideri so­sti­tui­re solo la prima oc­cor­ren­za di un modello, utilizza la funzione sub().

So­sti­tu­zio­ne di parole alla prima oc­cor­ren­za

Ipo­tiz­zia­mo di avere una stringa con parole ripetute e di voler so­sti­tui­re la prima parola:

text <- "Data Science is powerful. Data Analysis is fun."
result_sub <- sub("Data", "Information", text)
cat(result_sub)
R

Otteniamo questo output:

"Information Science is powerful. Data Analysis is fun."
R

La funzione sub() in R cerca il modello "Data" nel testo e so­sti­tui­sce la prima oc­cor­ren­za con il testo so­sti­tu­ti­vo indicato "Information".

So­sti­tu­zio­ne di numeri

La funzione sub() consente anche la so­sti­tu­zio­ne di numeri.

numeric_text <- "The cost is $1000. Please pay by 01.02.2024."
result <- sub("\\d+", "2000", numeric_text)
cat(result)
R

Output:

"The cost is $2000. Please pay by 01.02.2024."
R

L’espres­sio­ne regolare \\d+ cor­ri­spon­de a una o più cifre, ma la funzione sub() so­sti­tui­sce solo il primo gruppo di numeri in­con­tra­to nel testo.

Consiglio

Ulteriori spie­ga­zio­ni sulle funzioni di R, come substring in R o rbind in R sono di­spo­ni­bi­li nella nostra Digital Guide.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana
Vai al menu prin­ci­pa­le