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