What is `Not in`and How to Use %notin% Operator in R

The `not in` is an operator in R for checking if a value is not contained in a vector. It is the opposite of the in operator, which checks if a value is contained in a vector. It is represented by %!in% syntax and is the Negation of the %in%  operator.

The %in% operator is used to identify if an element belongs to a vector. The ! indicates logical negation (NOT). The `not in`operator is cognitively simpler than the more verbose! x %in% table.

The not-in operator is a logical vector, negating the %in% operators on the same arguments.

Please note that the NOT IN(%!in%) is not a built-in operator like the %in% operator, but we can define it using the Negate operator.

Syntax

``x %!in% table``

Parameters

x

The values to be matched.

table

The values do not match.

Example of not in operator in R

Let’s define two vectors called v1 and v2.

``````v1 <- 4
v2 <- 11``````

Now, we define the sequence of 1: 10.

``s <- 1:10``

Now, we will check the vector values against this sequence and include them in the sequence using in operator.

``````v1 <- 4
v2 <- 11
s <- 1:10
print(v1 %in% s)
print(v2 %in% s)``````

Output

``````[1] TRUE
[1] FALSE``````

You can see that 4 is in the sequence, so the %in% operator returns TRUE. 11 is not in the sequence, so it returns FALSE.

Let’s use the %!in% operator, but the problem with this is that there is no inbuilt %!in% operator in R.

If you use the %!in% operator in R, you will face the following error.

could not find function “%!in%” in r

To fix this issue, we need to define the %!in% operator. Write the following code to define the Negate %in% operator.

```%!in%` <- Negate(`%in%`)``

Now, you can use the %!in% operator.

``````v1 <- 4
v2 <- 11
t <- 1:10

`%!in%` <- Negate(`%in%`)
print(v1 %!in% t)
print(v2 %!in% t)``````

Output

``````[1] FALSE
[1] TRUE``````

You can see that v1 is included in 1: 10 but not in operator negates this. That is why it returns FALSE.

In the second example, 11 is not included, 1:10, which means negates condition returns TRUE, and it returns TRUE.

That is it.