前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言中交集,并集,补集,差集的方法

R语言中交集,并集,补集,差集的方法

作者头像
邓飞
发布2022-12-13 17:05:07
1.8K0
发布2022-12-13 17:05:07
举报

‍大家好,我是飞哥。

R语言中计算交集、并集、并集、差集,这些数学概念,这里汇总一下。包括向量的操作和数据框的操作。可以说是非常全面了。

首先,模拟一下数据:a为1-10的数,b为5-15的数。

这里,推荐dplyr中的函数,

代码语言:javascript
复制
library(dplyr)
a = 1:10
b = 5:15

a
b

1. 向量

1. 1 交集(intersect)

R中的函数为:intersect示例图:黄色线的区域,就是目标区域

代码语言:javascript
复制
# 交集
intersect(a,b)

1.2 交集(union)

R中的函数为:union示例图:黄色线的区域,就是目标区域

在这里插入图片描述

代码语言:javascript
复制
# 并集
union(a,b)

1.3 补集

R中的函数为:setdiff示例图:黄色线的区域,就是目标区域

代码语言:javascript
复制
# 补集
setdiff(a,b)
setdiff(b,a)

a与b的补集:

b与a的补集:

2. 数据框

构建两个数据框:

代码语言:javascript
复制
set.seed(123)
d1 = data.frame(ID = 1:10,y1 = rnorm(10))
d2 = data.frame(ID = 5:15,y2 =  rnorm(11))

d1
d2

2.1 交集

代码语言:javascript
复制
inner_join(d1,d2,by="ID")

2.2 并集

代码语言:javascript
复制
full_join(d1,d2,by="ID")

2.3 以d1为准合并

代码语言:javascript
复制
left_join(d1,d2,by="ID")

2.4 以d2为准合并

代码语言:javascript
复制
right_join(d1,d2,by="ID")

2.5 在d1中去除d2的ID

代码语言:javascript
复制
anti_join(d1,d2,by="ID")

2.6 在d1中提取d2的ID

代码语言:javascript
复制
semi_join(d1,d2,by="ID")

3. 测试数据及代码

代码语言:javascript
复制
a = 1:10
b = 5:15

a
b

# 交集
intersect(a,b)

# 并集
union(a,b)

# 补集
setdiff(a,b)
setdiff(b,a)


# 数据框
set.seed(123)
d1 = data.frame(ID = 1:10,y1 = rnorm(10))
d2 = data.frame(ID = 5:15,y2 =  rnorm(11))

d1
d2

## 交集
inner_join(d1,d2,by="ID")

## 并集
full_join(d1,d2,by="ID")


## 以左边数据为准,进行合并
left_join(d1,d2,by="ID")


## 以右边边数据为准,进行合并
right_join(d1,d2,by="ID")

## 在d1中去除d2的ID
anti_join(d1,d2,by="ID")

## 在d1中提取d2的ID
semi_join(d1,d2,by="ID")

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 育种数据分析之放飞自我 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 向量
    • 1. 1 交集(intersect)
      • 1.2 交集(union)
        • 1.3 补集
        • 2. 数据框
          • 2.1 交集
            • 2.2 并集
              • 2.3 以d1为准合并
                • 2.4 以d2为准合并
                  • 2.5 在d1中去除d2的ID
                    • 2.6 在d1中提取d2的ID
                    • 3. 测试数据及代码
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档