【问题标题】:Merging two data frames in r - error在 r 中合并两个数据帧 - 错误
【发布时间】:2013-02-26 09:04:15
【问题描述】:

我有两个数据集,一个是 log10 转换的,另一个是 RMA 标准化的。

DATAFRAME 1(原始数据)

 dim(protdata) [1] 437   7
      Locus      COBL9   WER    CORTEX   SCR     WOL    PET111
  1  AT1G01090  4.3035  4.3975  4.4620  4.3879  4.2620  4.2045
  2  AT1G02780  4.7852  4.6865  4.7801  5.0038  4.9457  4.9515
  3  AT1G04040  4.5854  4.1787  3.4836  3.4918  4.2366  3.5197
  4  AT1G04270  4.3578  4.4281  4.3348  4.5680  4.4208  4.4056
  5  AT1G04410  4.9808  4.9913  5.2186  5.3315  5.2178  5.4524
  6  AT1G04430  4.2382  4.3564  4.3535  4.3056  4.0263  3.9485
  7  AT1G04480  4.5462  4.4302  4.4987  4.8039  4.5807  4.4876

DATAFRAME 2(转数据)

 dim(transdata) [1] 22810    77
       Locus      probes     COBL9    WER   CORTEX  SCR     
 1   AT1G01090   244901_at   4.7852 4.6865  4.7801  5.0038  
 2   AT1G02780   244902_at   4.5854 4.1787  3.4836 3.4918                          
 3   AT1G04040   244903_at   4.3578 4.4281  4.3348  4.5680              
 4   AT1G04570   244904_at   4.9808 4.9913  5.2186  5.3315                  
 5   AT1G04610   244905_at   4.2382 4.3564  4.3535  4.3056                  
 6   AT1G02430   244906_at   4.5462 4.4302  4.4987  4.8039  
                    
                      

我想根据 Locus id 合并两个数据框并使用

 matchin<-merge(transdata,protdata,by.x="Locus",by.y="Locus")

但我得到了一个不同的数据帧,如下所示:在上面的示例中,我在两个帧中都有两个匹配的 id,但结果是:

      Locus      probes     COBL9    WER    CORTEX  SCR     
 1   AT1G01090   244901_at  14.7852 12.6865 13.7801 12.0038     
 2   AT1G02780   244902_at  14.5854 13.1787 12.4836 13.4918 
             COBL9   WER    CORTEX   SCR     WOL    PET111
            4.3035  4.3975  4.4620  4.3879  4.2620  4.2045
            4.7852  4.6865  4.7801  5.0038  4.9457  4.9515
                    

虽然它是一个包含唯一基因座 id 的数据框,但仅来自 transdata 的强度值已经发生了变化。

【问题讨论】:

    标签: r


    【解决方案1】:

    为我工作。清除您的工作区并开始新的工作。确保您使用的是正确的对象。

    > merge(transdata,protdata, by = "Locus")
          Locus    probes COBL9.x  WER.x CORTEX.x  SCR.x COBL9.y  WER.y CORTEX.y  SCR.y    WOL PET111
    1 AT1G01090 244901_at  4.7852 4.6865   4.7801 5.0038  4.3035 4.3975   4.4620 4.3879 4.2620 4.2045
    2 AT1G02780 244902_at  4.5854 4.1787   3.4836 3.4918  4.7852 4.6865   4.7801 5.0038 4.9457 4.9515
    3 AT1G04040 244903_at  4.3578 4.4281   4.3348 4.5680  4.5854 4.1787   3.4836 3.4918 4.2366 3.5197
    

    【讨论】:

    • 我再次尝试,当在整个数据集上使用时,仅来自 tansdata 的强度值在合并时就像原始强度的三倍
    • @user1805343,我敢打赌,一个完全可重现的例子会有所帮助。
    • @user1805343 是否可以制作一个模拟示例来演示您正在经历的行为?以下是一些关于如何做到这一点的提示:stackoverflow.com/questions/5963269/… 无法保证 github 数据将来会可用,因此这个问题和潜在答案的用处不大。
    • 不可能用完整的数据,因为它太大而且它的一个子集没有共同点
    猜你喜欢
    • 2014-04-14
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    相关资源
    最近更新 更多