如何根据R中的查询ID折叠列?

时间:2016-08-08 23:34:43

标签: r

我根据条件填充了一个列表R script并且我生成了一个汇总表但不幸的是,我遇到了表的问题。这是

          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

1 个答案:

答案 0 :(得分:1)

可能有一种方法可以过滤掉未映射的直系同源物。

同时,"快速和非NotTooDirty"解决方案如下:

dcast(子集(融化(df,id =" id"),值!="未找到"),id~variable + value)

其中df是输入数据框对象。

您可能需要重命名列。

第一个表达式(即,熔化(df,id =" id")创建一个3列df。 子集表达式过滤掉值=="未找到"的记录。 最后,dcast函数将其作为宽数据帧返回,每个id只有一行。

依赖关系:reshape2包(w.r.t.融合和dcast功能)