So wählen sie die ersten n-werte nach gruppe in r aus


Sie können eine der folgenden Methoden verwenden, um die Top-N-Werte nach Gruppe in R auszuwählen:

Methode 1: Wählen Sie die ersten N Werte pro Gruppe aus (Krawatten ignorieren)

 library (dplyr)

#select top 5 values by group
df %>% 
  arrange(desc(values_column)) %>% 
  group_by(group_column) %>%
  slice(1:5)

Methode 2: Wählen Sie die ersten N Werte nach Gruppe aus (einschließlich Bindungen).

 library (dplyr)

#select top 5 values by group
df %>%
  group_by(group_column) %>%
  top_n(5, values_column)

Die folgenden Beispiele zeigen, wie jede Methode mit dem folgenden Datenrahmen in R verwendet wird:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(19, 22, 15, NA, 14, 25, 25, 25),
                 rebounds=c(10, 6, 3, 7, 11, 13, 9, 12))

#view data frame
df

  team points rebounds
1 A 19 10
2 to 22 6
3 to 15 3
4 A NA 7
5 B 14 11
6 B 25 13
7 B 25 9
8 B 25 12

Beispiel 1: Wählen Sie die ersten N Werte pro Gruppe aus (Krawatten ignorieren)

Der folgende Code zeigt, wie die ersten beiden Zeilen mit den höchsten Punktwerten, gruppiert nach Team, ausgewählt werden:

 library (dplyr)

#select top 2 rows with highest points values, grouped by team 
df %>% 
  arrange(desc(points)) %>% 
  group_by(team) %>%
  slice(1:2)

# A tibble: 4 x 3
# Groups: team [2]
  team points rebounds
        
1 to 22 6
2 A 19 10
3 B 25 13
4 B 25 9

Das Ergebnis enthält die beiden Zeilen mit den punkthöchsten Werten für jedes Team.

Beachten Sie, dass es für Team B tatsächlich drei Zeilen gab, die den höchsten Punktwert ( 25 ) ergaben, in der Ausgabe jedoch nur zwei Zeilen zurückgegeben wurden.

Diese Methode ignoriert einfach die Links.

Beispiel 2: Wählen Sie die ersten N Werte pro Gruppe aus (einschließlich Bindungen).

Der folgende Code zeigt, wie die ersten beiden Zeilen mit den höchsten Punktwerten, gruppiert nach Team, ausgewählt werden:

 library (dplyr)

#select top 2 rows with highest points values, grouped by team 
df %>%
  group_by(team) %>%
  top_n(2, dots)

# A tibble: 5 x 3
# Groups: team [2]
  team points rebounds
        
1 A 19 10
2 to 22 6
3 B 25 13
4 B 25 9
5 B 25 12

Das Ergebnis enthält die beiden Zeilen mit den punkthöchsten Werten für jedes Team.

Beachten Sie, dass für Team B drei Linien für den höchsten Punktwert ( 25 ) gleichstanden, sodass diese Methode diese drei Linien in das Endergebnis einbezog.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in R ausgeführt werden:

So wählen Sie Zeilen aus, in denen der Wert in einer beliebigen Spalte in R erscheint
So wählen Sie bestimmte Spalten in R aus
So wählen Sie Spalten nach Index in R aus

Einen Kommentar hinzufügen

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