So wählen sie mit dplyr die erste zeile nach gruppe aus


Häufig möchten Sie möglicherweise die erste Zeile jeder Gruppe mithilfe des dplyr- Pakets in R auswählen. Dazu können Sie die folgende grundlegende Syntax verwenden:

 df %>%
  group_by (group_var) %>%
  arrange (values_var) %>%
  filter (row_number()== 1 )

Das folgende Beispiel zeigt, wie Sie diese Funktion in der Praxis nutzen können.

Beispiel: Wählen Sie die erste Zeile nach Gruppe in R aus

Angenommen, wir haben den folgenden Datensatz in R:

 #create dataset
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C' ),
                 points=c(4, 9, 7, 7, 6, 13, 8, 8, 4, 17))

#view dataset
df

   team points
1 to 4
2 to 9
3 to 7
4 B 7
5 B 6
6 B 13
7 C 8
8 C 8
9 C 4
10 C 17

Der folgende Code zeigt, wie Sie das dplyr-Paket verwenden, um die erste Zeile nach Gruppe in R auszuwählen:

 library (dplyr)

df %>%
  group_by (team) %>%
  arrange (points) %>%
  filter (row_number()== 1 )

# A tibble: 3 x 2
# Groups: team [3]
  team points
    
1 to 4
2 C 4
3 B 6

Standardmäßig sortiert arrang() Werte in aufsteigender Reihenfolge, aber wir können Werte auch problemlos in absteigender Reihenfolge sortieren:

 df %>%
  group_by (team) %>%
  arrange ( desc (dots)) %>%
  filter (row_number()== 1 )

# A tibble: 3 x 2
# Groups: team [3]
  team points
    
1 C 17
2 B 13
3 to 9

Beachten Sie, dass Sie diesen Code leicht ändern können, um die n-te Zeile in jeder Gruppe auszuwählen. Ändern Sie einfach row_number() == n .

Wenn Sie beispielsweise die 2. Zeile nach Gruppe auswählen möchten, können Sie die folgende Syntax verwenden:

 df %>%
  group_by (team) %>%
  arrange ( desc (dots)) %>%
  filter (row_number()== 2 )

Oder Sie können die folgende Syntax verwenden, um die letzte Zeile nach Gruppe auszuwählen:

 df %>%
  group_by (team) %>%
  arrange ( desc (dots)) %>%
  filter (row_number()== n() )

Zusätzliche Ressourcen

So ordnen Sie Zeilen in R an
So zählen Sie Beobachtungen pro Gruppe in R
So ermitteln Sie den Maximalwert pro Gruppe in R

Einen Kommentar hinzufügen

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