Cara menyusun baris dalam urutan khusus menggunakan dplyr


Anda dapat menggunakan sintaks dasar berikut untuk menyusun baris bingkai data dalam urutan khusus menggunakan paket dplyr di R:

 library (dplyr)

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

Contoh khusus ini menyusun baris berdasarkan urutan khusus C, B, D, A untuk nilai kolom tim , dan kemudian menurut nilai kolom poin dalam urutan menaik.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: Cara menyusun baris dalam urutan khusus menggunakan dplyr

Misalkan kita memiliki kerangka data berikut yang menunjukkan poin yang dicetak oleh pemain bola basket dari tim berbeda:

 #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

Jika kita menggunakan fungsi arrange() untuk mengurutkan baris berdasarkan nilai pada kolom tim , maka berdasarkan nilai pada kolom poin , fungsi arrange() akan mengurutkan baris berdasarkan urutan abjad default :

 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

Garis dicantumkan menurut abjad berdasarkan tim , kemudian dalam urutan menaik berdasarkan poin .

Namun, katakanlah kita ingin menyusun garis berdasarkan urutan nilai tim berikut: C, B, D, A.

Kita dapat menggunakan fungsi match() dalam fungsi arrange() untuk melakukan hal ini:

 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

Baris-baris tersebut disusun dalam urutan khusus yang kami tentukan (C, B, D, A) untuk kolom tim , kemudian berdasarkan kolom poin .

Catatan #1 : Fungsi match mendapatkan indeks baris dari nilai-nilai pada kolom tim, kemudian fungsi arrange dapat mengurutkan berdasarkan nilai indeks tersebut.

Catatan #2 : Untuk mengatur dengan mengurangi nilai poin, cukup gunakan desc(points) saja.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:

Cara mengatur baris berdasarkan grup menggunakan dplyr
Cara memfilter nilai unik menggunakan dplyr
Cara memfilter berdasarkan beberapa kondisi menggunakan dplyr

Tambahkan komentar

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