Belirli bir dizeyi içeren satırları dplyr kullanarak nasıl filtreleyebilirim?


Genellikle R’deki bir veri çerçevesindeki belirli bir dizeyi içeren satırları filtrelemek isteyebilirsiniz. Neyse ki, dplyr paketindeki filter() işlevini ve Base R’deki grepl() işlevini kullanarak bunu yapmak kolaydır.

Bu eğitimde, aşağıdaki veri çerçevesini kullanarak bu işlevlerin pratik kullanımına ilişkin birkaç örnek gösterilmektedir:

 #create data frame
df <- data.frame(player = c('P Guard', 'S Guard', 'S Forward', 'P Forward', 'Center'),
                 points = c(12, 15, 19, 22, 32),
                 rebounds = c(5, 7, 7, 12, 11))

#view data frame
df

     player points rebounds
1 P Guard 12 5
2 S Guard 15 7
3S Forward 19 7
4 P Forward 22 12
5 Center 32 11

Örnek 1: Belirli bir dize içeren satırları filtreleme

Aşağıdaki kod, belirli bir dizeyi içeren satırların nasıl filtreleneceğini gösterir:

 #load dplyr package
library(dplyr)

#filter rows that contain the string 'Guard' in the player column
df %>% filter ( grepl ('Guard', player))

   player points rebounds
1 P Guard 12 5
2 S Guard 15 7

İlgili: R’de grep() ve grepl() öğelerinin karşılaştırılması: Fark nedir?

Örnek 2: En az bir dize içeren satırları filtreleme

Aşağıdaki kod, oynatıcı sütununda “Koruma” veya “İleri” içeren satırların nasıl filtreleneceğini gösterir:

 #filter rows that contain 'Guard' or 'Forward' in the player column
df %>% filter ( grepl ('Guard|Forward', player))

     player points rebounds
1 P Guard 12 5
2 S Guard 15 7
3S Forward 19 7
4 P Forward 22 12

Aşağıdaki kod, okuyucu sütununda “P” veya “Merkez” içeren satırların nasıl filtreleneceğini gösterir:

 #filter rows that contain 'P' or 'Center' in the player column
df %>% filter ( grepl ('P|Center', player))

     player points rebounds
1 P Guard 12 5
2 P Forward 22 12
3 Center 32 11

Örnek 3: Belirli bir dize içeren satırları filtreleme

Aşağıdaki kod, oynatıcı sütununda “Guard” içeren satırların nasıl filtreleneceğini (yani kaldırılacağını) gösterir:

 #filter out rows that contain 'Guard' in the player column
df %>% filter (! grepl ('Guard', player))

     player points rebounds
1S Forward 19 7
2 P Forward 22 12
3 Center 32 11

Aşağıdaki kod, oynatıcı sütununda “Koruma” veya “Merkez” içeren satırların nasıl filtreleneceğini (yani kaldırılacağını) gösterir:

 #filter out rows that contain 'Guard' or 'Center' in the player column
df %>% filter (! grepl ('Guard|Center', player))

     player points rebounds
1S Forward 19 7
2 P Forward 22 12

Daha fazla R eğitimini burada bulabilirsiniz.

Yorum ekle

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