Dplyr kullanarak satırları özel bir sıraya göre nasıl düzenleyebilirim?


R’deki dplyr paketini kullanarak bir veri çerçevesinin satırlarını özel bir sıraya göre düzenlemek için aşağıdaki temel sözdizimini kullanabilirsiniz:

 library (dplyr)

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

Bu özel örnek, satırları takım sütunu değerleri için özel C, B, D, A sırasına göre ve ardından puan sütunu değerlerine göre artan sırada düzenler.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Dplyr kullanılarak satırlar özel bir sıraya göre nasıl düzenlenir?

Farklı takımlardaki basketbolcuların attığı sayıları gösteren aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:

 #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

Satırları takım sütunundaki değerlere göre sıralamak için düzenleme() işlevini kullanırsak, ardından puanlar sütunundaki değerlere göre düzenleme() işlevi satırları varsayılan alfabetik sıraya göre sıralayacaktır. :

 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

Çizgiler takıma göre alfabetik olarak, ardından noktalara göre artan sırada listelenir.

Ancak bunun yerine satırları şu takım değerleri sırasına göre düzenlemek istediğimizi varsayalım: C, B, D, A.

Bunu yapmak için ,range() işlevi içindeki match() işlevini kullanabiliriz:

 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

Satırlar, takım sütunu için belirlediğimiz özel sıraya (C, B, D, A) ve ardından puan sütununa göre düzenlenir.

Not #1 : Match fonksiyonu takım sütunundaki değerlerin satır indeksini alır, ardından düzenleme fonksiyonu bu indeks değerlerine göre sıralama yapabilir.

Not #2 : Nokta değerlerini azaltarak düzenlemek için bunun yerine basitçe desc(points) komutunu kullanın.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Dplyr kullanarak satırları gruba göre nasıl organize edebilirim?
Dplyr kullanarak benzersiz değerler nasıl filtrelenir
Dplyr kullanarak birden çok koşula göre filtreleme nasıl yapılır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir