Come raggruppare e filtrare i dati utilizzando dplyr


È possibile utilizzare la seguente sintassi di base per raggruppare e filtrare i dati utilizzando il pacchetto dplyr in R:

 df %>%
  group_by(team) %>%
  filter(any(points = = 10 ))

Questa particolare sintassi raggruppa un data frame per colonna denominata squadra e filtra solo i gruppi in cui almeno un valore nella colonna punti è uguale a 10.

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

Esempio: raggruppare e filtrare i dati utilizzando dplyr

Supponiamo di avere il seguente frame di dati in R che contiene informazioni su vari giocatori di basket:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
                 points=c(10, 15, 8, 4, 10, 10, 12, 12, 7))

#view data frame
df

  team points
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10
7 C 12
8 C 12
9 C 7

Possiamo utilizzare il seguente codice per raggruppare il frame di dati in base al valore nella colonna Team , quindi filtrare tutti i gruppi che non hanno almeno un valore nella colonna Points uguale a 10:

 library (dplyr)

#group by team and filter out teams where no points value is equal to 10
df %>%
  group_by(team) %>%
  filter(any(points == 10 ))

# A tibble: 6 x 2
# Groups: team [2]
  team points
    
1 to 10
2 to 15
3 to 8
4 B 4
5 B 10
6 B 10

Tieni presente che tutte le righe in cui la squadra è uguale a “C” vengono filtrate perché nella colonna dei punti non è presente alcun valore per la squadra “C” uguale a 10.

Tieni presente che questo è solo un esempio di un filtro che potremmo applicare.

Ad esempio potremmo applicare un altro filtro in cui filtriamo le squadre con almeno un valore nella colonna punti maggiore di 13:

 library (dplyr)

#group by team and filter out teams where no points value is greater than 13
df %>%
  group_by(team) %>%
  filter(any(points > 13 ))

# A tibble: 3 x 2
# Groups: team [1]
  team points
    
1 to 10
2 to 15
3 to 8

Tieni presente che vengono mantenute solo le righe in cui la squadra è uguale ad “A” poiché è l’unica squadra con almeno un valore in punti maggiore di 13.

Nota : puoi trovare la documentazione completa della funzione filtro in dplyr qui .

Risorse addizionali

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

Come selezionare la prima riga per gruppo utilizzando dplyr
Come filtrare in base a più condizioni 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 *