zl程序教程

您现在的位置是:首页 >  其他

当前栏目

R语言常用函数:交集intersect、并集union、找不同setdiff、判断相同setequal

语言 函数 常用 判断 不同 相同 union 交集
2023-09-14 09:09:48 时间

集合运算与连接其实有相似之处,但是连接是针对特定列(主键)来对表格进行连接,而集合运算则直接对记录(entry)进行运算。简单来说,就是以行为单位进行运算。假设表格A与表格B有相同的列名称,它们其实数据的来源是相同的,但是记录的东西有重复的部分,又有不一样的地方。如果我们想要知道哪些部分重复了,就需要求两个数据的交集。简单来讲,本章就是要讲数据记录的“交、并、补”运算。具体的运算逻辑如下图所示:

在这里插入图片描述

求两个向量的并集
集合可以是任何数值类型

union(x=1:3, y=2:5)
[1] 1 2 3 4 5

union(x=c(“abc”, “12”), y=c(“bcd”, “efg”))
[1] “abc” “12” “bcd” “efg”
1
2
3
4
5
6
setdiff
求向量x与向量y中不同的元素(只取x中不同的元素)
setdiff(x, y)

setdiff(x=1:4, y=2:3)
[1] 1 4
1
2
intersect
两个向量的交集

intersect(x=c(1:5, NA), y = c(2:5, NA))
[1] 2 3 4 5 NA

两个字符串向量的交集只有一个元素 “abc”

intersect(x=c(“abc”, “bcd”), y = c(“abc”, 12, “apple”))
[1] “abc”
————————————————

#求两个向量的并集
#集合可以是任何数值类型
union(x=1:3, y=2:5)

#求向量x与向量y中不同的元素(只取x中不同的元素)
setdiff(x=1:4, y=2:3)

#两个向量的交集
intersect(x=c(1:5, NA), y = c(2:5, NA))

两个字符串向量的交集只有一个元素 “abc”

intersect(x=c(“abc”, “bcd”), y = c(“abc”, 12, “apple”))

两个字符向量取并集

union(x=letters[1:4], y = letters[2:6])

两个数值向量取并集

union(x=1:4, y = 2:6)

两个字符向量取交集

intersect(x=letters[1:4], y = letters[2:6])

#判断相同setequal
x = 1:4
y = 2:6

判断x与y是否相同,结果为假

setequal(x, y)