R语言中实现多维数据交并补集合运算,利用tidyverse系列包,intersect、union、setdiff

简介: R语言中实现多维数据交并补集合运算,利用tidyverse系列包,intersect、union、setdiff

R语言集合操作

数据分析时可能会遇到这样的问题:

  1. 我有两个样本,分别得到了各自中关键基因,现在想找出两者共有的关键信息或者两者之间差异的部分,如果有成千上万个怎么实现呢?
  2. 我有两个表格,想找出里面重复出现的行和只在第二个表出现的行,如何实现表格的交并补集合操作呢?

本篇笔记简述tidyverse系列中dplyr包的集合操作过程,实现对列表和数据框的交并补集合运算。

首先载入R包tidyverse:

> library(tidyverse)

列表的集合操作

创建两个变量

> ### 列表的集合操作 ======================================================================
> data_1 <- c(1,2,3,4,5,6,7,8,9)
> data_2 <- c(4,5,5,6,7,11,12,12,13)

集合运算

  • intersect:寻找两个对象的交集
  • union:用于合并两个对象的数据
  • setdiff:用于查找在第一个对象中但不在第二个对象中的元素
> # 交集:得出同时存在于两个列表的值
> out_jiao <- intersect(data_1,data_2)
> # 并集:得出两个列表中所有值的集合
> out_bing <- union(data_1,data_2)
> # 补集:得出存在于前一个列表但是不存在于后一个列表的值
> out_bu <- setdiff(data_1,data_2)

以上是对两个集合进行交并补操作,如果是数据框、矩阵或者字符串,也可以用相同的方法进行操作,下面进行示例

多维数据的集合操作

创建两个数据框

> ### 数据框的集合操作 ======================================================================
> df_1 <- tribble(
+   ~x , ~y , ~z ,
+   1  , "a", T  ,
+   1  , "a", F  ,
+   2  , "b", T  ,
+   3  , "c", F  )
> df_2 <- tribble(
+   ~x , ~y , ~z ,
+   1  , "a", F  ,
+   2  , "m", F  ,
+   4  , "c", T  )
  • df_1

  • df_2

交集操作

> # 交集:得到两个数据框中一致的行
> intersect(df_1,df_2)
# A tibble: 1 × 3
      x y     z    
  <dbl> <chr> <lgl>
1     1 a     FALSE

并集操作

> # 并集:得到两个数据框中所有的唯一行
> union(df_1,df_2)
# A tibble: 6 × 3
      x y     z    
  <dbl> <chr> <lgl>
1     1 a     TRUE 
2     1 a     FALSE
3     2 b     TRUE 
4     3 c     FALSE
5     2 m     FALSE
6     4 c     TRUE

补集操作

> # 补集:得到只存在于第一个数据框中的行
> setdiff(df_1,df_2)
# A tibble: 3 × 3
      x y     z    
  <dbl> <chr> <lgl>
1     1 a     TRUE 
2     2 b     TRUE 
3     3 c     FALSE

tidyverse yyds!

END

© 素材来源于网络,侵权请联系后台删除

往期推荐:

文献丨群体转录组分析锁定关键转录因子

文献丨转录组RNA seq——青年阶段!

文献丨高通量表型组图像识别与GWAS

笔记丨ggplot2热图入门学习笔记

笔记丨PCA分析基本知识和数学原理

图书丨R语言、Python、Linux

超算丨数据分析时电脑配置不够用?试试

软件 | 如何进行基因家族分析?TBtools

服务器丨家用联想台式机重装Linux系统

转录组丨一套完整的操作流程案例

转录组丨利用limma包进行差异表达分析

Python笔记丨函数和类相关基础知识总结

Python笔记丨条件与循环流程知识总结

Python笔记丨数据类型基础与易错点总结

相关文章
|
3天前
|
数据可视化 数据挖掘
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享
10 2
|
1天前
|
数据可视化 数据挖掘
R语言用igraph对上海公交巴士路线数据进行复杂网络、网络图可视化
R语言用igraph对上海公交巴士路线数据进行复杂网络、网络图可视化
|
1天前
|
机器学习/深度学习 数据可视化
数据分享|R语言用RFM、决策树模型顾客购书行为的数据预测
数据分享|R语言用RFM、决策树模型顾客购书行为的数据预测
|
1天前
|
数据可视化 数据挖掘
数据分享|R语言分析上海空气质量指数数据:kmean聚类、层次聚类、时间序列分析:arima模型、指数平滑法
数据分享|R语言分析上海空气质量指数数据:kmean聚类、层次聚类、时间序列分析:arima模型、指数平滑法
|
2天前
|
数据可视化
R语言淮河流域水库水质数据相关性分析、地理可视化、广义相加模型GAM调查报告
R语言淮河流域水库水质数据相关性分析、地理可视化、广义相加模型GAM调查报告
|
2天前
数据分享|R语言回归模型诊断、离群值分析学生考试成绩、病人医护质量满意度、婴儿死亡率和人均收入、针叶树荫面积数据
数据分享|R语言回归模型诊断、离群值分析学生考试成绩、病人医护质量满意度、婴儿死亡率和人均收入、针叶树荫面积数据
|
2天前
|
机器学习/深度学习 数据可视化
R语言MCMC的lme4二元对数Logistic逻辑回归混合效应模型分析吸烟、喝酒和赌博影响数据
R语言MCMC的lme4二元对数Logistic逻辑回归混合效应模型分析吸烟、喝酒和赌博影响数据
|
2天前
|
算法 数据可视化 Python
【视频】逆变换抽样将数据标准化和R语言结构化转换:BOX-COX、凸规则变换方法
【视频】逆变换抽样将数据标准化和R语言结构化转换:BOX-COX、凸规则变换方法
25 1
|
2天前
|
机器学习/深度学习 算法 前端开发
【视频】为什么要处理缺失数据?如何用R语言进行缺失值填充?
【视频】为什么要处理缺失数据?如何用R语言进行缺失值填充?
10 1
|
2天前
|
数据可视化 知识图谱
数据分享|R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化
数据分享|R语言、SAS潜类别(分类)轨迹模型LCTM分析体重指数 (BMI)数据可视化

热门文章

最新文章