2016-08-08 25 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