美文网首页Science相关 杂R学习与可视化
R语言指定列取交集然后合并多个数据集的简便方法

R语言指定列取交集然后合并多个数据集的简便方法

作者: 小明的数据分析笔记本 | 来源:发表于2020-12-08 22:29 被阅读0次

之前录制过一期视频介绍过这个内容,他的基本需求就是:他有5份数据集,每一份数据集都是每行是一个基因,每列是一个样本,值是对应这个基因的表达量。他想将5个数据集中的共有基因找出来,然后5个数据集按共有的基因合并。

我的思路是

  • 先把5份数据的基因名取交集
  • 用基因名给每份数据做行名
  • 根据取交集的结果来提取数据
  • 最后合并数据集

那期内容有人留言了简便方法,很短的代码就实现了这个目的。我将代码记录在这篇推文里

因为5份数据集以csv格式存储,首先就是获得存储路径下所有的csv格式文件的文件名,用到的命令是

files<-dir(path = "example_data/merge_data/",
           full.names = T,
           pattern = ".csv")

用到的函数是dir()
path参数是数据文件存储的路径
full.names参数如果设置为TRUE,则返回文件的完整路径,如果设置的为FALSE则只返回文件名。
相对路径和绝对路径是很重要的概念,这个一定要搞明白
pattern参数指定文件的后缀名

接下来批量将5份数据读入

需要借助tidyverse这个包,用到的是map()函数

library(tidyverse)
df<-map(files,read.csv)
class(df) 

df是一个列表,5份数据分别以数据框的格式存储在其中

最后是合并数据

直接一行命令搞定

df1<-reduce(df,inner_join)

df1就是我们想要的结果

达成这个目的最终总共才用到了4行代码,太方便了。

之前和一位同学讨论的时候他也提到了tidyverse整理数据,但是自己平时用到的数据格式还算整齐,基本上用数据框的一些基本操作就可以达到目的了。也就没有学tidyverse这个包的内容,看来得抽时间好好学习一下了。

欢迎大家关注我的公众号
小明的数据分析笔记本

相关文章

  • R语言指定列取交集然后合并多个数据集的简便方法

    之前录制过一期视频介绍过这个内容,他的基本需求就是:他有5份数据集,每一份数据集都是每行是一个基因,每列是一个样本...

  • R语言数据操作

    列合并 行合并 数据排序 两数据的交集,并集,补集 交集 并集 判断不同 判断是否相同 行名重复解决办法 处理一些...

  • Pandas取交集、并集、差集

    数据合并有多种方式,其中最常见的应该就是交集、并集差集的求取。 取交集 pandas数据merge功能默认的行为是...

  • R语言取两列的交集

    杀杀 在数据分析中我们有时需要对矩阵取交集 比如我们有如上两个矩阵,在R中我们可以用intersect函数来取它们...

  • 数据集合并和批次效应

    战拖打卡3今天的任务是多数据集的合并和批次效应的移除。 数据集合并 方法 rbind 行合并 cbind 列合并 ...

  • R之rbind.fill

    我们总结下R中合并数据框的方法,按列合并cbind()函数,按行合并rbind()函数那么如果对于行列不统一的数据...

  • R-rbind.fill|列数不一致的多个数据集“智能”合并,G

    Q:多个数据集,列数不一致,列名也不一致,如何按行合并,然后保留全部文件的变量并集呢? A:使用 rbind.fi...

  • 时间段交集数据合并(并集)处理

    语言 Java实现内容是一列时间段合并有交集情况下的时间段(前提是数据顺序按开始时间从小到大排序) 数据结构 方法 效果

  • 2020-05-10

    初级练习 复习了Merge 函数的用法 merge 函数就是把两个数据框通过内容相似的一列或者指定的某一列合并(取...

  • 基于vue+element的table横向树形结构

    需求: 指定需要合并的列,相同数据向下合并形成树节点 相同数据向下合并时不能跨越节点 github地址,喜欢star

网友评论

    本文标题:R语言指定列取交集然后合并多个数据集的简便方法

    本文链接:https://www.haomeiwen.com/subject/vqzqgktx.html