Cara memfilter baris yang berisi string tertentu menggunakan dplyr


Seringkali Anda mungkin ingin memfilter baris dalam bingkai data di R yang berisi string tertentu. Untungnya, hal ini mudah dilakukan dengan menggunakan fungsi filter() di paket dplyr dan fungsi grepl() di Base R.

Tutorial ini menunjukkan beberapa contoh penggunaan praktis fungsi-fungsi tersebut menggunakan bingkai data berikut:

 #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

Contoh 1: Filter baris yang berisi string tertentu

Kode berikut menunjukkan cara memfilter baris yang berisi string tertentu:

 #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

Terkait: Membandingkan grep() dan grepl() di R: Apa bedanya?

Contoh 2: Filter baris yang berisi setidaknya satu string

Kode berikut menunjukkan cara memfilter baris yang berisi “Penjaga” atau “Teruskan” di kolom pemain:

 #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

Kode berikut menunjukkan cara memfilter baris yang mengandung “P” atau “Tengah” di kolom pembaca:

 #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

Contoh 3: Filter baris yang berisi string tertentu

Kode berikut menunjukkan cara memfilter (yaitu menghapus) baris yang berisi “Penjaga” di kolom pemain:

 #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

Kode berikut menunjukkan cara memfilter (yaitu menghapus) baris yang berisi “Penjaga” atau “Tengah” di kolom pemutar:

 #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

Anda dapat menemukan lebih banyak tutorial R di sini .

Tambahkan komentar

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