如何在 r 中使用 intersect() 函数(附示例)


您可以使用基本 R 中的intersect()函数来查找两个对象的交集。

“交集”仅表示两个对象共有的元素。

该函数使用以下基本语法:

 intersect(object1, object2)

以下示例演示如何将intersect()函数与向量和数据框一起使用。

示例 1:对向量使用 intersect()

以下代码演示了如何使用intersect()函数求 R 中两个向量之间的交集:

 #define two vectors
x <- c(1, 4, 5, 5, 9, 12, 19)
y <- c(1, 2, 5, 5, 10, 14, 19)

#find intersection between two vectors
intersect(x,y)

[1] 1 5 19

从结果中我们可以看到向量 x 和 y 有三个共同的值: 1519

请注意, intersect()函数也适用于字符向量:

 #define two vectors
x <- c('A', 'B', 'C', 'D', 'E')
y <- c('C', 'D', 'E', 'F')

#find intersection between two vectors
intersect(x,y)

[1] “C” “D” “E”

从结果中,我们可以看到向量 x 和 y 有三个共同的字符串: CDE。

请注意,两个向量的长度不必相同才能使intersect()函数发挥作用。

示例 2:对数据框使用 intersect()

为了找到两个数据框的共同线,我们需要使用dplyr包中的intersect()函数。

以下代码显示如何使用此函数查找两个数据框共有的行:

 library (dplyr) 

#define two data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
                  dots=c(12, 20, 25, 19))

df1

  team points
1 to 12
2 to 20
3 B 25
4 B 19

df2 <- data. frame (team=c('A', 'A', 'B', 'C'),
                  dots=c(12, 22, 25, 32))

df2

  team points
1 to 12
2 to 22
3 B 25
4 C 32

#find intersection between two data frames
dplyr::intersect(df1, df2)

  team points
1 to 12
2 B 25

从结果中我们可以看到数据框有两行是共同的。

请注意,此intersect()函数只会返回两个数据帧之间列具有相同值的行。

另请注意,我们可以使用length()函数和intersect()函数来简单地查找两个数据帧共有的行数:

 #find number of rows in common between the two data frames
length(dplyr::intersect(df1, df2))

[1] 2

从结果中我们可以看到两个数据框有2行是共同的。

其他资源

以下教程解释了如何使用 R 中的其他常用函数:

如何在 R 中使用 dim() 函数
如何在R中使用transform()函数
如何在 R 中使用 swep() 函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注