如何将特定字符串添加到R中的data.frame

时间:2015-08-19 05:21:57

标签: r

我有两个数据框,其中一个数据框具有我的数据的统计输出,我正在使用的基因在此数据框中由集群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。

1 个答案:

答案 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'))