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

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

作者头像
邓飞
发布于 2022-07-27 11:46:09
发布于 2022-07-27 11:46:09
2.1K00
代码可运行
举报
运行总次数:0
代码可运行

交集、并集、补集、差集,这些在R语言中如何实现呢,这篇博客介绍一下。

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

这里,推荐dplyr中的函数,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(dplyr)
a = 1:10
b = 5:15

a
b

1. 向量

1. 1 交集(intersect)

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 交集
intersect(a,b)

1.2 交集(union)

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

在这里插入图片描述

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 并集
union(a,b)

1.3 补集

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 补集
setdiff(a,b)
setdiff(b,a)

a与b的补集:

b与a的补集:

2. 数据框

构建两个数据框:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
inner_join(d1,d2,by="ID")

2.2 并集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
full_join(d1,d2,by="ID")

2.3 以d1为准合并

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
left_join(d1,d2,by="ID")

2.4 以d2为准合并

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
right_join(d1,d2,by="ID")

2.5 在d1中去除d2的ID

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
anti_join(d1,d2,by="ID")

2.6 在d1中提取d2的ID

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
semi_join(d1,d2,by="ID")

3. 测试数据及代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
R语言数据处理——数据合并与追加
数据结构的塑造是数据可视化前重要的一环,虽说本公众号重心在于数据可视化,可是涉及到一些至关重要的数据整合技巧,还是有必要跟大家分享一下的。 在可视化前的数据处理技巧中,导入导出、长宽转换已经跟大家详细的介绍过了。 今天跟大大家分享数据集的合并与追加,并且这里根据所依赖函数的处理效率,给出诺干套解决方案。 数据合并操作涉及以下几个问题: 横向合并; 1. 是否需要匹配字段 1.1 匹配字段合并 1.1.1 主字段同名 1.1.2 主字段不同名 1.2 无需匹配字段合并 纵向合并:(情况比较简单,列
数据小磨坊
2018/04/11
5K0
R语言数据处理——数据合并与追加
dplyr数据处理
filter()函数用于筛选出一个观测子集,第一个参数是数据库框的名称,第二个参数以及随后的参数是用来筛选数据框的表达式。
生信喵实验柴
2022/10/25
1.7K0
R语言进阶笔记3 | dplyr常用函数介绍
管道符在Rstudio中快捷键是Ctrl + Shift + M,打印出来是%/%,它可以将前面的结果传递到后面作为参数
邓飞
2020/12/29
1.4K0
R语言进阶笔记3 | dplyr常用函数介绍
R语言包_dplyr_2
data_frame() is a better way than data.frame() for creating data frames. Benefits of data_frame():
用户1147754
2019/05/26
7550
R语言小专题
⚠️注意:str_spilt的第二个参数,写你想分割的符号,上面代码“hello world”的分割是空格,因此输入“ ”,同样也可以是其他符号。
顾卿岚
2023/02/16
9110
学习小组DAY6-Creep
安装命令是install.packages(“包”)(安装在CRAN里的包),或者BiocManager::install(“包”)(安装在Biocductor)即可安装对应的包。之前已经安装过dplyr包了,所以直接加载即可
用户10816509
2023/11/06
2100
R数据科学整洁之道:使用 dplyr 处理关系数据
有人喜欢用 Excel 的 vlookup 函数来处理。但对于生信人来说,这显然不够优雅,因为我们有更好的办法。
简说基因
2022/11/11
7470
R语言函数
用户10803254
2023/10/23
3370
生信星球学习小组Day6-R包学习 Jerry
(1)在Rstudio程序设置中设置,可以用options()$repos来检验,但有时候还是不能成功,也不能下载Bioconductor的包
jerry早点睡
2023/08/12
2580
R语言第二章数据处理(9)数据合并
=========================================
用户1359560
2019/03/21
2.5K0
两个神奇的R包介绍,外加实用小抄
认识Tidy Data1.Reshape Data2.Handle Missing Values3.Expand Tables4.split cells一、测试数据1.新建数据框2.用tidyr进行处理3.按照geneid排序4.空值操作用表二、Dplyr能实现的小动作1.arrange 排序2.fliter3.distinct4.select5.mutate6.summarise7.bind_rows8.交集、并集、全集9.关联
生信技能树
2018/08/16
2.7K0
两个神奇的R包介绍,外加实用小抄
生信学习小组day6--大姚
上述一串代码意思是新增一列列名为“new”、数值是Sepal.Length * Sepal.Width的列
用户10340059
2023/02/11
8920
常用R包-dplyr
dplyr是一个在R语言中非常流行的数据处理包,它提供了许多功能强大且易于使用的函数,包括 select、 filter、mutate、arrange和summarize 等。这些功能使得dplyr成为数据清洗、处理和分析的首选包。
用户11076492
2024/04/18
5710
不用SQL,也可以实现数据集的合并和连接
数据(集)处理是数据分析过程中的重要环节,今天特别整理数据(集)合并、增减与连接的相关内容,并逐一作出示例。
1480
2019/07/30
1.3K0
「R」dplyr 包使用
summary()函数会对 列 进行处理,并且 创建新的列表 ,简单来说就是把向量作为输入值,输出单个数值。
王诗翔呀
2020/07/03
1.2K0
生信技能树七天学习小组 Day6笔记——学习R包
install.packages()/BiocManager::install()
可乐同学与生信死磕到底
2024/03/28
1480
生信技能树R语言学习直播配套笔记
1.1 判断数据类型class() 1.2 按Tab键自动补全1.3 数据类型的判断和转换 (1)is 族函数,判断,返回值为TRUE或FALSE
生信技能树
2022/06/08
1.2K0
生信技能树R语言学习直播配套笔记
生信入门课DAY6--向逸一(R包)
R包安装与加载 1、安装 install.packages(“包”) #要安装的包存在于CRAN网站 BiocManager::install(“包”) #要安装的包存在于Biocductor(存贮位置可以通过谷歌搜索) 2、加载 library() require() dplyr包 1、五个基础函数 ①新增列 mutate() ②筛选列 select(数据框名称,筛选标准) ③筛选行 filter() ④排序 filter() ⑤汇总 summarise() 2、俩个实用技能 ①管道操作 %>% (
向11
2023/02/11
2920
2023.4生信马拉松day7-R语言综合应用
-(3)注意:之前提到过,矩阵的某一列不能单独转换数据类型,需要把矩阵转换成数据框再转换某列的数据类型;或者把这列单独提取出来再转换其数据类型;
清南
2023/04/20
3.8K0
十二、R语言的综合应用
[1] "The birch canoe slid on the smooth planks."
叮当猫DDM
2023/03/01
3.2K0
相关推荐
R语言数据处理——数据合并与追加
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验