Cara memfilter bingkai data tanpa kehilangan garis na menggunakan dplyr


Anda dapat menggunakan sintaks dasar berikut untuk memfilter bingkai data tanpa kehilangan baris yang berisi nilai NA menggunakan fungsi dalam paket dplyr dan Tidyr di R:

 library (dplyr)
library (tidyr)

#filter for rows where team is not equal to 'A' (and keep rows with NA)
df <- df %>% filter((team != ' A ') %>% replace_na( TRUE ))

Perhatikan bahwa rumus ini menggunakan fungsi replace_na() dari paket Tidyr untuk mengonversi nilai NA menjadi TRUE sehingga tidak terhapus dari bingkai data selama pemfilteran.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: Filter bingkai data tanpa kehilangan baris NA menggunakan 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', NA, 'A', 'B', NA, 'C', 'C', 'C'),
                 points=c(18, 13, 19, 14, 24, 21, 20, 28),
                 assists=c(5, 7, 17, 9, 12, 9, 5, 12))

#view data frame
df

  team points assists
1 to 18 5
2 <NA> 13 7
3 A 19 17
4 B 14 9
5 <NA> 24 12
6 C 21 9
7 C 20 5
8 C 28 12

Sekarang misalkan kita menggunakan fungsi filter() dari paket dplyr untuk memfilter bingkai data agar hanya berisi baris-baris yang nilainya di kolom tim tidak sama dengan A:

 library (dplyr)

#filter for rows where team is not equal to 'A'
df <- df %>% filter(team != ' A ')

#view updated data frame
df

  team points assists
1 B 14 9
2 C 21 9
3 C 20 5
4 C 28 12

Perhatikan bahwa setiap baris yang nilai di kolom tim sama dengan A telah difilter, termasuk baris yang nilai di kolom tim sama dengan NA.

Jika kita ingin memfilter baris dengan tim yang sama dengan A dan mempertahankan baris dengan nilai NA, kita dapat menggunakan sintaks berikut:

 library (dplyr)
library (tidyr)

#filter for rows where team is not equal to 'A' (and keep rows with NA)
df <- df %>% filter((team != ' A ') %>% replace_na( TRUE ))

#view updated data frame
df

  team points assists
1 <NA> 13 7
2 B 14 9
3 <NA> 24 12
4 C 21 9
5 C 20 5
6 C 28 12

Perhatikan bahwa setiap baris yang nilai di kolom tim sama dengan A telah difilter, namun kami tetap mempertahankan baris yang nilai di kolom tim sama dengan NA.

Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi Tidyr replace_na() 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

Tambahkan komentar

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