温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-11-22 15:00:04 来源:亿速云 阅读:674 作者:柒染 栏目:大数据

今天就跟大家聊聊有关R语言指定列取交集后合并多个数据集的简便方法是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

之前录制过一期视频介绍过这个内容,他的基本需求就是:他有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语言指定列取交集后合并多个数据集的简便方法是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI