A: come usare grepl con più modelli


È possibile utilizzare la seguente sintassi di base con la funzione grepl() in R per filtrare le righe in un frame di dati contenente uno dei diversi modelli di stringa in una colonna specifica:

 library (dplyr)

new_df <- filter(df, grepl(paste(my_patterns, collapse=' | '), my_column))

Questa particolare sintassi filtra il frame di dati per le righe in cui il valore della colonna chiamata my_column contiene uno dei modelli di stringa nel vettore chiamato my_patterns .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: come utilizzare grepl() con più modelli in R

Supponiamo di avere il seguente frame di dati in R che contiene informazioni su varie squadre di basket:

 #create data frame
df <- data. frame (team=c('Mavs', 'Hawks', 'Nets', 'Heat', 'Cavs'),
                 points=c(104, 115, 124, 120, 112),
                 status=c('Bad', 'Good', 'Excellent', 'Great', 'Bad'))

#view data frame
df

   team points status
1 Mavs 104 Bad
2 Hawks 115 Good
3 Nets 124 Excellent
4 Heat 120 Great
5 Cavs 112 Bad

Supponiamo di voler filtrare il data frame per contenere solo le righe in cui la stringa della colonna status contiene uno dei seguenti modelli di stringa:

  • ‘BENE’
  • ‘Grigio’
  • ‘Ex’

Possiamo usare la seguente sintassi con la funzione grepl() per fare ciò:

 library (dplyr)

#define patterns to search for
my_patterns <- c(' Good ', ' Gre ', ' Ex ')

#filter for rows where status column contains one of several strings
new_df <- filter(df, grepl(paste(my_patterns, collapse=' | '), status))

#view results
new_df

   team points status
1 Hawks 115 Good
2 Nets 124 Excellent
3 Heat 120 Great

Tieni presente che il frame di dati è stato filtrato per contenere solo le righe in cui la stringa nella colonna status contiene uno dei tre modelli specificati.

Tieni presente che utilizzando la funzione Paste() con l’argomento Collapses=’|’ in realtà abbiamo cercato la stringa “Good|Gre|Ex” nella colonna status .

Dal | Il simbolo in R significa “OR”, siamo riusciti a trovare le righe contenenti “Buono” o Gre” o “Ex” nella colonna di stato .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come mutare una variabile se la colonna contiene una stringa usando dplyr
Come rimuovere il primo carattere dalle stringhe usando dplyr
Come sostituire una stringa in una colonna usando dplyr

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *