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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *