我有两个数据框,其中一个数据框具有我的数据的统计输出,我正在使用的基因在此数据框中由集群Id引用。我拥有的另一个数据框有集群ID和随附的gene_id。
data.frame1是具有相关统计数据的无序聚类的集合
X baseMean
cluster_1234 542
cluster_2546 764
cluster_3472 564
data.frame2按簇按升序排列,但相关的gene_id却按随机顺序排列,但允许我比较另一个数据帧中的其他相关数据。
gene_id cluster_id
gene_69149 cluster_1
gene_23478 cluster_2
gene_92371 cluster_3
我想要做的是通过迭代data.frame1 $ x为我的每个群集添加一个包含相关gene-id的列。输出将是具有感兴趣的基因和基因-id的新数据框。我还应该指出data.frame1中只有900行,而data.frame2中只有53,000行。这就像下面的内容。另一个问题是与每个gene_id相关联的数字与每个群集编号相关的数字不相似。
gene_id X baseMean
gene_5463 cluster_1234 542
gene_7934 cluster_2546 764
gene_8346 cluster_3472 564
我只想在相关的群集ID旁边的新列中添加关联的gene_id。
答案 0 :(得分:1)
我们可以使用merge
merge(df1, df2, by.x='X', by.y='cluster_id')
如果我们有大型数据集,则另一个选项是inner_join/left_join/full_join
等等(取决于所需的输出)来自library(dplyr)
library(dplyr)
inner_join(df1, df2, by=c('X'='cluster_id'))