r - 基于另一个数据帧在 R 中对数据帧进行子集化,多次点击
问题描述
我有两个数据框
df1
names target start end
Gene_1 chr5 1 345
Gene_2 chr1 1 678
Gene_3 chr4 1 909
Gene_4 chr48 1 876
Gene_5 chr8 1 432
Gene_6 chr9 1 556
Gene_7 chr12 1 345
df2
gene_names positions
Gene_1 221
Gene_2 34
Gene_2 444
Gene_2 324
Gene_3 99
Gene_3 232
Gene_4 221
Gene_4 334
Gene_4 390
Gene_6 200
Gene_7 146
df1
比 短得多df2
。的第一列df2
在第二列中有不同值的重复观察。它的第一列缺少一些匹配(很多)在同源列中的观察df1
。
我想将它们合并到一个df_new
中,其中包含gene_names
和另一列df2
以及来自另一列的相关信息df1
,甚至在观察gene_names
出现 2 次以上时重复。
我为合并铺平了道路
df_new<-merge(df2, df1, by.x = "gene_names", by.y = "names")
我有一个初步的结果,我不确定。有人可以阐明更多吗?
预期输出
df_new
gene_names positions target start end
Gene_1 221 chr5 1 345
Gene_2 34 chr1 1 678
Gene_2 444 chr1 1 678
Gene_2 324 chr1 1 678
Gene_3 99 chr4 1 909
Gene_3 232 chr4 1 909
Gene_4 221 chr48 1 876
Gene_4 334 chr48 1 876
Gene_4 390 chr48 1 876
Gene_6 200 chr9 1 556
Gene_7 146 chr12 1 345
解决方案
我们可以merge
使用base R
merge(df1, df2, all.y = TRUE, by.x = "gene_names", by.y = "names")
推荐阅读
- r - 字符列之间的对应关系
- linux - 对数据包套接字使用 select
- arrays - 变量零初始化会降低性能吗?
- firebase - Spotify - Firebase - 用户注册/登录
- symfony - API KEY 阻止 SMTP 服务器后如何将本地仓库与 Github 和远程服务器同步
- akka.net - 如何将 Akka.NET 灯塔与 hyperion 一起使用
- python-3.x - SAWarning:未识别列“custom_property_xml”的类型“xml”(类型、名称))
- java - 如何在使用 Comparator.reversed() 时修复编译器问题
- bash - 无法将 git 分支命令的输出捕获到 bash 变量中
- javascript - 在 JavaScript 中预览上传的图像