Jak ułożyć wiersze w niestandardowej kolejności za pomocą dplyr


Możesz użyć następującej podstawowej składni, aby uporządkować wiersze ramki danych w niestandardowej kolejności, korzystając z pakietu dplyr w R:

 library (dplyr)

#arrange rows in custom order based on values in 'team' column
df %>%
  arrange(match(team, c(' C ', ' B ', ' D ', ' A ')), points)

W tym konkretnym przykładzie wiersze są układane w oparciu o niestandardową kolejność C, B, D, A dla wartości kolumn zespołu , a następnie według wartości kolumn punktów w kolejności rosnącej.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Jak ułożyć wiersze w niestandardowej kolejności za pomocą dplyr

Załóżmy, że mamy następującą ramkę danych przedstawiającą punkty zdobyte przez koszykarzy z różnych drużyn:

 #create data frame
df <- data. frame (team=c('A', 'B', 'A', 'A', 'B', 'D', 'C', 'D', 'D', 'C'),
                 points=c(12, 20, 14, 34, 29, 22, 28, 15, 20, 13))

#view data frame
df

   team points
1 to 12
2 B 20
3 to 14
4 to 34
5 B 29
6 D 22
7 C 28
8 D 15
9 D 20
10 C 13

Jeśli użyjemy funkcji aranżacji() do posortowania wierszy na podstawie wartości w kolumnie zespół , to na podstawie wartości w kolumnie punktów funkcja aranżacji() posortuje wiersze w oparciu o domyślną kolejność alfabetyczną :

 library (dplyr)

#arrange rows in ascending order by team, then by points
df %>%
  arrange(team, points)

   team points
1 to 12
2 to 14
3 to 34
4 B 20
5 B 29
6 C 13
7 C 28
8 D 15
9 D 20
10 D 22

Linie są wymienione alfabetycznie według drużyn , a następnie w kolejności rosnącej według punktów .

Załóżmy jednak, że zamiast tego chcemy ułożyć linie w oparciu o następującą kolejność wartości zespołu : C, B, D, A.

W tym celu możemy użyć funkcji match() znajdującej się w funkcji aranżacyjnej :

 library (dplyr)

#arrange rows in custom order based on 'team' column, then by 'points' column
df %>%
  arrange(match(team, c(' C ', ' B ', ' D ', ' A ')), points)

   team points
1 C 13
2 C 28
3 B 20
4 B 29
5 D 15
6 D 20
7 D 22
8 to 12
9 to 14
10 to 34

Wiersze są ułożone w niestandardowej kolejności, którą określiliśmy (C, B, D, A) dla kolumny zespołu , a następnie według kolumny punktów .

Uwaga nr 1 : Funkcja dopasowania pobiera indeks wierszy wartości w kolumnie zespołu, następnie funkcja porządkowania może sortować w oparciu o te wartości indeksu.

Uwaga nr 2 : Aby uporządkować poprzez zmniejszanie wartości punktów, po prostu użyj zamiast tego desc(points) .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak organizować wiersze według grup za pomocą dplyr
Jak filtrować unikalne wartości za pomocą dplyr
Jak filtrować według wielu warunków za pomocą dplyr

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *