Come trovare il valore massimo per gruppo in r
Spesso potresti voler trovare il valore massimo di ciascun gruppo in un frame di dati in R. Fortunatamente, questo è facile da fare utilizzando le funzioni nel pacchetto dplyr .
Questo tutorial spiega come eseguire questa operazione utilizzando il seguente frame di dati:
#create data frame df <- data.frame(team = c('A', 'A', 'A', 'B', 'B', 'B', 'B'), position = c('G', 'F', 'F', 'G', 'G', 'G', 'F'), points = c(12, 15, 19, 22, 34, 34, 39)) #view data frame df team position points 1 AG 12 2 AF15 3 FY 19 4 BG 22 5 BG 34 6 BG 34 7 BF 39
Esempio 1: trovare il valore massimo per gruppo
Il seguente codice mostra come trovare il valore massimo per squadra per posizione:
library(dplyr) #find max value by team and position df %>% group_by (team, position) %>% summarize (max = max(points, na.rm= TRUE )) # A tibble: 4 x 3 # Groups: team [?] team position max 1AF 19.0 2 AG 12.0 3 BF 39.0 4 BG 34.0
Esempio 2: restituisce righe contenenti il valore massimo per gruppo
Il codice seguente mostra come restituire le righe contenenti il valore massimo per squadra e per posizione:
library(dplyr) #find rows that contain max points by team and position df %>% group_by (team, position) %>% filter (points == max(points, na.rm= TRUE )) # A tibble: 5 x 3 # Groups: team, position [4] team position points 1 AG 12.0 2AF 19.0 3 BG 34.0 4 BG 34.0 5BF 39.0
Esempio 3: restituisce una singola riga contenente il valore massimo per gruppo
Nell’esempio precedente, c’erano due giocatori che avevano il numero massimo di punti nella squadra A ed erano entrambi nella posizione G. Se vuoi restituire solo il primo giocatore con il valore massimo in un gruppo, puoi usare la funzione slice( ) funzione. operare come segue:
library(dplyr) #find rows that contain max points by team and position df %>% group_by (team, position) %>% slice (which.max(points)) # A tibble: 4 x 3 # Groups: team, position [4] team position points 1AF 19.0 2 AG 12.0 3 BF 39.0 4 BG 34.0
Risorse addizionali
La guida completa: come raggruppare e riepilogare i dati in R
Come filtrare le righe in R
Come rimuovere le righe duplicate in R