2016-08-08 30 views
-3

我已經根據條件使用這個R script填充了一個列表,但我生成了一個彙總表,但不幸的是,我遇到了該表的問題。這裏是如何在R中基於查詢ID摺疊列?

  id        Alyr  Crub   Lala 
TCONS_00002401.gene=XLOC_001343_TBH_1 Ortholog Not found Not found 
TCONS_00002401.gene=XLOC_001343_TBH_1 Not found Not found Not found 
TCONS_00002401.gene=XLOC_001343_TBH_1 Not found Ortholog Not found 

正如你所看到的那樣,有三行四列。我所期望的是對所有三種物種(Alyr,Crub和Lala)都有一個想法,但不幸的是有三排。我怎樣才能把這些東西合併成一個這樣的東西?

   id       Alyr  Crub  Lala 
TCONS_00002401.gene=XLOC_001343_TBH_1 Ortholog Ortholog Not found 
+0

首先,替換'「未找到」''與另外NA',其中是。 'Lala'中的'Ortholog'來自? – alistaire

+0

您所需的輸出結果不清楚請注意,這兩個結果「看起來」是相同的,但是結構是不同的'unlist(df [1,])'和'df [1 ,]' –

+0

對不起。我做了一個在期望的輸出中出錯。我已糾正它... – upendra

回答

1

可能有一種方法可以過濾掉非映射的直向同源物。

同時, 「快速和NotTooDirty」 的解決方案將是如下:

dcast(子集(熔體(DF,ID = 「ID」),值= 「未找到」),ID〜變量+值)

其中df是您的輸入數據幀對象。

您可能需要重命名列。

第一個表達式(即熔體(DF,ID =「ID」)創建了一個3欄DF。 子集表達濾除記錄,其中值==「未找到」。 最後,該dcast函數將其重新作爲寬數據幀,每個ID只有一行

依存:reshape2包(WRT熔體和dcast函數)

+0

感謝它像魅力一樣工作。好的解決方案 – upendra