So ermitteln sie den maximalwert pro gruppe in r


Häufig möchten Sie möglicherweise den Maximalwert jeder Gruppe in einem Datenrahmen in R ermitteln. Glücklicherweise ist dies mithilfe der Funktionen im dplyr- Paket einfach zu bewerkstelligen.

In diesem Tutorial wird erklärt, wie Sie dies mithilfe des folgenden Datenrahmens tun:

 #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

Beispiel 1: Ermitteln Sie den Maximalwert pro Gruppe

Der folgende Code zeigt, wie man den Maximalwert pro Team und Position ermittelt:

 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

Beispiel 2: Zeilen zurückgeben, die den Maximalwert pro Gruppe enthalten

Der folgende Code zeigt, wie Zeilen zurückgegeben werden, die den Maximalwert pro Team und pro Position enthalten:

 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

Beispiel 3: Geben Sie eine einzelne Zeile zurück, die den Maximalwert pro Gruppe enthält

Im vorherigen Beispiel gab es zwei Spieler, die in Team A die maximale Punktzahl hatten und beide auf Position G waren. Wenn Sie nur den ersten Spieler mit dem maximalen Wert in eine Gruppe zurückgeben möchten, können Sie den Slice( ) Funktion. wie folgt funktionieren:

 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

Zusätzliche Ressourcen

Der vollständige Leitfaden: So gruppieren und fassen Sie Daten in R zusammen
So filtern Sie Zeilen in R
So entfernen Sie doppelte Zeilen in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert