代码之家  ›  专栏  ›  技术社区  ›  melatonin15

连接两个不同数据表的相同行(此列除外)的列值

  •  0
  • melatonin15  · 技术社区  · 10 年前

    我有两个基因aggHuman和aggRat的数据表

    > aggHuman
       Human     Rat RNAtype
    1   ASAP2   Asap2      Hy
    2    BBS1    Bbs1      Hn
    3    BBS2    Bbs2      Hn
    4 SPATA22 Spata22      Hn
    

      > aggRat
        Human     Rat RNAtype
    1   ASAP2   Asap2      Rn
    2    BBS1    Bbs1      Ry
    3    BBS2    Bbs2      Rn
    4 SPATA22 Spata22      Rn
    

    现在,我想缝合这两个表的RNAtype列中的值。例如,在aggHuman中,ASAP2有Hy,而在aggRat中,我们有Rn。现在,我想通过缝合HyRn制作另一个类似的表格。

            Human     Rat RNAtype
        1   ASAP2   Asap2      HyRn 
    

    但最初的两个表可以有不同顺序的基因。所以,我需要做的是在aggHuman中找到对应于ASAP2的行,并在aggRat中“找到”相同的基因行,然后进行缝合。

    有人能帮我怎么做吗?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Shambho    10 年前

    试试看:

    步骤1:加载data.table库(您可能需要安装此库):

    library(data.table)
    

    步骤2:将data.frame转换为data.table,并设置适当的键:

    setDT(aggHuman)
    setkey(aggHuman,Human,Rat)
    setDT(aggRat)
    setkey(aggRat,Human,Rat)
    

    步骤3:连接两个数据表,并执行所需的组合:

    aggHumanRat <- aggHuman[aggRat]
    aggHumanRat[,RNAtype := paste(RNAtype,RNAtype.1,sep="")][,RNAtype.1:=NULL]
    aggHumanRat
    

    希望这有帮助!!