Cara menggunakan operator “not in” di r (dengan contoh)


Anda dapat menggunakan sintaks dasar berikut untuk memilih semua elemen yang tidak ada dalam daftar nilai di R:

 ! (data %in% c(value1, value2, value3, ...))

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh 1: Cara menggunakan “NOT IN” dengan vektor

Kode berikut menunjukkan cara memilih semua nilai vektor di R yang tidak ada dalam daftar nilai tertentu:

 #define numeric vector
num_data <- c(1, 2, 3, 3, 4, 4, 5, 5, 6)

#display all values in vector not equal to 3 or 4
num_data[ ! (num_data %in% c(3, 4))]

[1] 1 2 5 5 6

Semua nilai yang tidak sama dengan 3 atau 4 ditampilkan di output.

Perhatikan bahwa kita dapat menggunakan sintaks yang sama untuk memilih semua elemen vektor yang tidak ada dalam daftar karakter tertentu:

 #define vector of character data
char_data <- c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'D')

#display all elements in vector not equal to 'A', or 'C'
char_data[ ! (char_data %in% c('A', 'C'))]

[1] “B” “B” “D” “D” “D”

Nilai apa pun yang tidak sama dengan “A” atau “C” akan ditampilkan di output.

Contoh 2: Cara menggunakan “NOT IN” dengan bingkai data

Kode berikut menunjukkan cara memilih semua baris bingkai data di R di mana kolom tertentu tidak sama dengan nilai tertentu:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 D 97 14

#select all rows where team is not equal to 'A' or 'B'
subset(df, ! (team %in% c('A', 'B')))

  team points assists
5 C 99 32
6 C 92 39
7 D 97 14

Perhatikan bahwa setiap baris yang tidak memiliki “A” atau “B” di kolom tim akan dikembalikan.

Kita juga dapat menggunakan sintaks serupa untuk memilih semua baris di mana kolom tertentu tidak sama dengan nilai numerik tertentu:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'D'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 D 97 14

#select all rows where team is not equal to 'A' or 'B'
subset(df, ! (points %in% c(89, 99)))

  team points assists
1 A 77 19
2 A 81 22
4 B 83 15
6 C 92 39
7 D 97 14

Perhatikan bahwa semua baris yang tidak sama dengan 89 atau 99 di kolom poin akan dikembalikan.

Sumber daya tambahan

Cara menggunakan operator %in% di R
Cara membuat subset bingkai data di R
Cara membuat subset daftar di R

Tambahkan komentar

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