Dplyr: come utilizzare un filtro per i messaggi “non presente”.


È possibile utilizzare la seguente sintassi di base in dplyr per filtrare le righe in un frame di dati che non si trovano in un elenco di valori:

 df %>%
  filter (!col_name %in% c(' value1 ', ' value2 ', ' value3 ', ...))

Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.

Esempio 1: filtrare le righe che non contengono un valore in una colonna

Supponiamo di avere il seguente frame di dati in R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
                 position=c('G', 'G', 'F', 'G', 'F', 'C', 'C', 'C'),
                 points=c(12, 14, 19, 24, 36, 41, 18, 29))

#view data frame
df

  team position points
1 AG 12
2 AG 14
3 BF 19
4 BG 24
5 CF 36
6 CC 41
7 DC 18
8 DC 29

La seguente sintassi mostra come filtrare le righe in cui il nome del team non è uguale a “A” o “B”:

 #filter for rows where team name is not 'A' or 'B'
df %>%
filter (!team %in% c(' A ', ' B '))

team position points
1 CF 36
2 CC 41
3 DC 18
4 DC 29

Esempio 2: filtrare le righe che non contengono valori in più colonne

Supponiamo di avere il seguente frame di dati in R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D', 'D'),
                 position=c('G', 'G', 'F', 'G', 'F', 'C', 'C', 'C'),
                 points=c(12, 14, 19, 24, 36, 41, 18, 29))

#view data frame
df

  team position points
1 AG 12
2 AG 14
3 BF 19
4 BG 24
5 CF 36
6 CC 41
7 DC 18
8 DC 29

La seguente sintassi mostra come filtrare le righe in cui il nome della squadra non è uguale ad “A” e la posizione non è uguale a “C”:

 #filter for rows where team name is not 'A' and position is not 'C'
df %>%
filter (!team %in% c(' A ') & !position %in% c(' C '))

team position points
1 BF 19
2 BG 24
3 CF 36

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre funzioni comuni in dplyr:

Come eliminare righe utilizzando dplyr
Come selezionare le colonne per indice utilizzando dplyr
Come filtrare le righe contenenti una determinata stringa utilizzando dplyr

Aggiungi un commento

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