【发布时间】:2021-10-16 09:56:18
【问题描述】:
我有两个数据框
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另一列的相关信息,甚至在@987654331中的观察时重复@ 出现 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
【问题讨论】:
-
基于共享的数据
df_new<-merge(df2, df1, by.x = "gene_names", by.y = "names")给出了预期的输出。您的原始数据有什么问题? -
我预计它会包含稍多一些的观察结果。也许我应该交叉检查我正在合并的数据的质量......
-
``` df_new