首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R语言指定列取交集然后合并多个数据集的简便方法

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

作者头像
用户7010445
发布2020-12-18 17:15:43
发布2020-12-18 17:15:43
7.8K00
代码可运行
举报
运行总次数:0
代码可运行

我的思路是

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
files<-dir(path = "example_data/merge_data/",
           full.names = T,
           pattern = ".csv")

用到的函数是dir()

path参数是数据文件存储的路径

full.names参数如果设置为TRUE,则返回文件的完整路径,如果设置的为FALSE则只返回文件名。

相对路径和绝对路径是很重要的概念,这个一定要搞明白

pattern参数指定文件的后缀名

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

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

代码语言:javascript
代码运行次数:0
运行
复制
library(tidyverse)
df<-map(files,read.csv)
class(df) 

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

最后是合并数据

直接一行命令搞定

代码语言:javascript
代码运行次数:0
运行
复制
df1<-reduce(df,inner_join)

df1就是我们想要的结果

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

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

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

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 接下来批量将5份数据读入
  • 最后是合并数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档