You can use the intersect() function in base R to find the intersection of two objects.
The “intersection” simply represents the elements that the two objects have in common.
This function uses the following basic syntax:
intersect(object1, object2)
The following examples show how to use the intersect() function with vectors and data frames.
Example 1: Use intersect() with Vectors
The following code shows how to use the intersect() function to find the intersection between two vectors in R:
#define two vectors
x #find intersection between two vectors
intersect(x, y)
[1] 1 5 19
From the output we can see that vectors x and y have three values in common: 1, 5, and 19.
Note that the intersect() function also works with character vectors:
#define two vectors
x #find intersection between two vectors
intersect(x, y)
[1] "C" "D" "E"
From the output we can see that vectors x and y have three strings in common: C, D, and E.
Note that the two vectors do not have to be the same length for the intersect() function to work.
Example 2: Use intersect() with Data Frames
In order to find the rows that two data frames have in common, we must use the intersect() function from the dplyr package.
The following code shows how to use this function to find the rows that two data frames have in common:
library(dplyr) #define two data frames df1 frame(team=c('A', 'A', 'B', 'B'), points=c(12, 20, 25, 19)) df1 team points 1 A 12 2 A 20 3 B 25 4 B 19 df2 frame(team=c('A', 'A', 'B', 'C'), points=c(12, 22, 25, 32)) df2 team points 1 A 12 2 A 22 3 B 25 4 C 32 #find intersection between two data frames dplyr::intersect(df1, df2) team points 1 A 12 2 B 25
From the output we can see that the data frames have two rows in common.
Note that this intersect() function will only return the rows that have the same values in every column between the two data frames.
Also note that we could use the length() function with the intersect() function to simply find the number of rows the two data frames have in common:
#find number of rows in common between the two data frames
length(dplyr::intersect(df1, df2))
[1] 2
From the output we can see that the two data frames have 2 rows in common.
Additional Resources
The following tutorials explain how to use other common functions in R:
How to Use the dim() Function in R
How to Use the transform() Function in R
How to Use the sweep() Function in R