Cara mengurutkan variabel berdasarkan kelompok menggunakan dplyr
Anda dapat menggunakan sintaks dasar berikut untuk mengelompokkan variabel di dplyr:
df %>% arrange (group_var, numeric_var) %>% group_by (group_var) %>% mutate (rank = rank(numeric_var))
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya dengan bingkai data berikut:
#create data frame df <- data. frame (team = c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'), points = c(12, 28, 19, 22, 32, 45, 22, 28, 13, 19), rebounds = c(5, 7, 7, 12, 11, 4, 10, 7, 8, 8)) #view data frame df team points rebounds 1 to 12 5 2 to 28 7 3 to 19 7 4 A 22 12 5 B 32 11 6 B 45 4 7 B 22 10 8 C 28 7 9 C 13 8 10 C 19 8
Contoh 1: Pemeringkatan dalam urutan menaik
Kode berikut menunjukkan cara mengurutkan poin yang dicetak oleh pemain dalam urutan menaik, dikelompokkan berdasarkan tim:
library (dplyr) #rank points scored, grouped by team df %>% arrange (team, points) %>% group_by (team) %>% mutate (rank = rank(points)) # A tibble: 10 x 4 # Groups: team [3] team points rebounds rank 1 A 12 5 1 2 A 19 7 2 3 A 22 12 3 4 A 28 7 4 5 B 22 10 1 6 B 32 11 2 7 B 45 4 3 8 C 13 8 1 9 C 19 8 2 10 C 28 7 3
Contoh 2: Pemeringkatan dalam urutan menurun
Kita juga dapat mengklasifikasikan poin yang dicetak dalam urutan menurun berdasarkan kelompok, menggunakan tanda negatif dalam fungsi Rank() :
library (dplyr) #rank points scored in reverse, grouped by team df %>% arrange (team, points) %>% group_by (team) %>% mutate (rank = rank(-points)) # A tibble: 10 x 4 # Groups: team [3] team points rebounds rank 1 to 12 5 4 2 A 19 7 3 3 A 22 12 2 4 A 28 7 1 5 B 22 10 3 6 B 32 11 2 7 B 45 4 1 8 C 13 8 3 9 C 19 8 2 10 C 28 7 1
Bagaimana menangani ikatan dalam peringkat
Kita bisa menggunakan argumen tie.method untuk menentukan bagaimana kita harus menangani ikatan saat mengurutkan nilai numerik.
rank(points, ties. method = ' average ')
Anda dapat menggunakan salah satu opsi berikut untuk menentukan cara menangani tautan:
- rata-rata : (Default) Memberikan peringkat rata-rata pada setiap item yang ditautkan (item dengan peringkat ke-3 dan ke-4 akan menerima peringkat 3,5)
- first : Menetapkan elemen tertaut pertama ke peringkat terendah (elemen yang berada di peringkat ke-3 dan ke-4 masing-masing akan menerima peringkat 3 dan 4)
- min : Menetapkan setiap item yang ditautkan ke peringkat terendah (item peringkat 3 dan 4 keduanya akan menerima peringkat 3)
- max : Menetapkan setiap item yang ditautkan dengan peringkat tertinggi (item dengan peringkat ke-3 dan ke-4 akan menerima peringkat 4)
- random : menetapkan setiap elemen terikat peringkat acak (salah satu elemen terikat untuk posisi ke-3 dan ke-4 dapat menerima peringkat mana pun)
Sumber daya tambahan
Tutorial berikut menjelaskan cara menjalankan fungsi umum lainnya di dplyr:
Cara memilih baris pertama berdasarkan grup menggunakan dplyr
Cara menghitung frekuensi relatif menggunakan dplyr
Cara mengkode ulang nilai menggunakan dplyr
Bagaimana cara mengganti NA dengan Zero di dplyr