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