Cara menggunakan filter bersyarat di dplyr
Anda dapat menggunakan sintaks dasar berikut untuk menerapkan filter kondisional pada bingkai data menggunakan fungsi dalam paket dplyr di R:
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))
Contoh khusus ini memfilter baris dalam bingkai data yang nilai kolom poinnya lebih besar dari nilai tertentu, bergantung pada nilai kolom tim .
Terkait: Pengantar case_when() di dplyr
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Cara menggunakan filter kondisional di dplyr
Misalkan kita memiliki kerangka data berikut di R yang berisi informasi tentang berbagai pemain bola basket:
#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
Sekarang anggaplah kita ingin menerapkan filter bersyarat berikut:
- Hanya pertahankan garis untuk pemain Tim A yang poinnya lebih besar dari 15.
- Hanya pertahankan garis untuk pemain Tim B yang poinnya lebih besar dari 20.
- Hanya pertahankan garis untuk pemain Tim C yang poinnya di atas 30.
Kita dapat menggunakan fungsi filter() dan case_when() dari paket dplyr untuk menerapkan filter bersyarat ini pada bingkai data:
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
Baris dalam bingkai data sekarang difilter jika nilai di kolom poin lebih besar dari nilai tertentu, bergantung pada nilai di kolom tim .
Catatan #1 : Dalam fungsi case_when() , kita menggunakan TRUE pada argumen terakhir untuk mewakili semua nilai di kolom tim yang tidak sama dengan “A” atau “B”.
Catatan #2 : Anda dapat menemukan dokumentasi lengkap untuk fungsi dplyr case_when() di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara menjalankan fungsi umum lainnya di dplyr:
Cara memfilter berdasarkan nomor baris menggunakan dplyr
Cara memfilter berdasarkan beberapa kondisi menggunakan dplyr
Cara menggunakan filter “tidak termasuk” di dplyr