%notin% Operator in R

The %notin% operator stands for NOT IN. It is a binary operator that takes two vectors as arguments and returns a logical vector that is TRUE if the first argument is not present in the second argument. There is no built-in symbol for the NOT IN operator in R. But we can define the symbol for it using the IN operator (%in%). In this guide, we will be discussing the %notin% operator in R.

Defining the %notin% Operator in R

We can use the IN operator (%in%) and negate it to create the symbol for the NOT IN operator. Use the following code to define the %notin% operator:

'%notin%' = Negate('%in%')

Syntax of the %notin% Operator

left_operand %notin% right_operand

Arguments

  • left_operand = It is the vector of values that you want to check.
  • right_operand = It is the vector of values that you want to check the left_operand against.

The %notin% operator will return a logical vector indicating which values in the left_operand are not present in the right_operand.

Example 1: Using %notin% to Check Values in a Vector

The example below shows how you can use the %notin% operator to check if any value lies in the vector.

# defining the NOT IN operator
'%notin%' = Negate('%in%')
# creating a vector
x <- c(10,20,30,40,50)
# checking if 50 doesn’t lie in the vector
50 %notin% x
# checking if 25 doesn’t lie in the vector
25 %notin% x

Output

[1] FALSE
[1] TRUE

In the above example, the %notin% operator returns FALSE and TRUE because 50 is present inside the vector x while 25 isn’t.

Example 2: Using %notin% to Compare Vectors

Here is an example of how to use the %notin% operator to compare vectors:

# defining the NOT IN operator
'%notin%' = Negate('%in%')
# creating vectors
x <- c("a", "b", "c")
y <- c("b", "c", "d")
# comparing the vectors
x %notin% y

Output

[1] TRUE FALSE FALSE

As you can see, the %notin% operator returns TRUE for the first element in the vector x because it is not present in the vector y.

Example 3: Using %notin% to Check Values in Data Frame

Let’s say you have a data frame containing student GPAs, and you want to check if any missing values are there in the gpa column.

# defining the NOT IN operator
'%notin%' = Negate('%in%')
# creating a data frame
student_gpas <- data.frame(
student_id = c(1, 2, 3, 4, 5),
gpa = c(3.5, 4.0, NA, 3.2, NA)
)
# checking if there is no NA in gpa column
NA %notin% student_gpas$gpa

Output

[1] FALSE

As you can see, the %notin% operator returns FALSE because NA values are present in the gpa column.

Leave a Comment