A: come eliminare le righe contenenti una stringa specifica


È possibile utilizzare la seguente sintassi per rimuovere le righe contenenti una determinata stringa in un frame di dati in R:

 df[!grepl(' string ', df$column),]

Questo tutorial fornisce diversi esempi di utilizzo pratico di questa sintassi con il seguente frame di dati in R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C'),
                 conference=c('East', 'East', 'East', 'West', 'West', 'East'),
                 dots=c(11, 8, 10, 6, 6, 5))

#view data frame
df

  team conference points
1 A East 11
2 A East 8
3 A East 10
4 B West 6
5 B West 6
6 C East 5

Esempio 1: rimuovere le righe contenenti una stringa specifica

Il codice seguente mostra come eliminare tutte le righe dal frame di dati che contengono “A” nella colonna del team:

 df[!grepl(' A ', df$team),]

  team conference points
4 B West 6
5 B West 6
6 C East 5

Oppure potremmo rimuovere tutte le righe dal data frame che contengono “West” nella colonna conference:

 df[!grepl(' West ', df$conference),]

  team conference points
1 A East 11
2 A East 8
3 A East 10
6 C East 5

Esempio 2: rimozione di righe contenenti una stringa in un elenco

Il codice seguente mostra come eliminare tutte le righe dal frame di dati che contengono “A” o “B” nella colonna del team:

 df[!grepl(' A|B ', df$team),]

6 C East 5

Potremmo anche definire un vettore di stringhe e quindi eliminare tutte le righe nel frame di dati contenente una qualsiasi delle stringhe del vettore nella colonna della squadra:

 #define vector of strings
remove <- c(' A ', ' B ')

#remove rows that contain any string in the vector in the team column
df[!grepl( paste (remove, collapse=' | '), df$team),]

6 C East 5

Tieni presente che entrambi i metodi portano allo stesso risultato.

Risorse addizionali

Come eliminare righe con alcune o tutte le NA in R
Come rimuovere le righe duplicate in R
Come sommare righe specifiche in R

Aggiungi un commento

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