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.