Dplyr'de koşullu filtre nasıl kullanılır?


R’deki dplyr paketindeki işlevleri kullanarak bir veri çerçevesine koşullu filtre uygulamak için aşağıdaki temel sözdizimini kullanabilirsiniz:

 library (dplyr)

#filter data frame where points is greater than some value (based on team)
df %>% 
  filter(case_when(team==' A ' ~ points > 15,
                   team==' B ' ~ points > 20,
                   TRUE ~ points > 30))

Bu özel örnek, takım sütununun değerine bağlı olarak puan sütununun değerinin belirli bir değerden büyük olduğu bir veri çerçevesindeki satırları filtreler.

İlgili: dplyr’de case_when() işlevine giriş

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

Örnek: Dplyr’de koşullu filtre nasıl kullanılır?

R’de çeşitli basketbol oyuncuları hakkında bilgi içeren aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
                 points=c(10, 12, 17, 18, 24, 29, 29, 34, 35))

#view data frame
df

  team points
1 to 10
2 to 12
3 to 17
4 B 18
5 B 24
6 B 29
7 C 29
8 C 34
9 C 35

Şimdi aşağıdaki koşullu filtreyi uygulamak istediğimizi varsayalım:

  • Yalnızca puanı 15’in üzerinde olan A Takımı oyuncularının sıralarını koruyun .
  • Sıraları yalnızca B Takımı oyuncuları için puanların 20’den büyük olduğu yerlerde tutun.
  • Sıraları yalnızca puanları 30’un üzerinde olan C Takımı oyuncuları için tutun .

Bu koşullu filtreyi veri çerçevesine uygulamak için dplyr paketindeki filter() ve case_when() işlevlerini kullanabiliriz:

 library (dplyr)

#filter data frame where points is greater than some value (based on team)
df %>% 
  filter(case_when(team==' A ' ~ points > 15,
                   team==' B ' ~ points > 20,
                   TRUE ~ points > 30))

  team points
1 to 17
2 B 24
3 B 29
4 C 34
5 C 35

Veri çerçevesindeki satırlar, artık puan sütunundaki değerin, takım sütunundaki değere bağlı olarak belirli bir değerden büyük olduğu durumlarda filtreleniyor.

Not #1 : case_when() fonksiyonunda, takım sütunundaki “A” veya “B”ye eşit olmayan tüm değerleri temsil etmek için son argümanda TRUE’yu kullanırız.

Not #2 : dplyr case_when() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde dplyr’de diğer yaygın işlevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Dplyr kullanarak satır numarasına göre filtreleme nasıl yapılır
Dplyr kullanarak birden çok koşula göre filtreleme nasıl yapılır
Dplyr’de “dahil değil” filtresi nasıl kullanılır?

Yorum ekle

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