提取列名称并与另一列匹配

时间:2019-03-08 15:04:15

标签: r filtering

我有一个像这样的数据框MutationsNumberTable

    ACC BLCA BRCA CESC   HGNC
1:   1    2    6    0   OPN4
2:   2    3    1    1  KLRB1
3:   2   23    4    5  SALL2
4:   1    8    5    7  PLCB2

目标是创建一个矩阵,其中我具有唯一的“基因癌类型”对,其中表中的数字大于阈值(比方说,为5):

所需的输出:

     HGNC Cancer
1:   OPN4 CESC
2:   SALL2 BRCA
3:   SALL2 CESC
4:   PLCB2 BLCA 
5:   PLCB2 BRCA 
6:   PLCB2 CESC

到目前为止,我可以提出以下建议:

n = ncol(MutationsNumberTable)
whereTrue = MutationsNumberTable[,1:(n-1)] >=threshold

但是在使用这些逻辑值制作我需要的矩阵之后,我遇到了困难。我尝试过

colnames(whereTrue)[whereTrue]

但这并不是我真正需要的。

1 个答案:

答案 0 :(得分:5)

我们可以将<canvas id="canvas" />设为'long'格式,然后gather

filter

或使用library(dplyr) library(tidyr) gather(df1, Cancer, val, -HGNC) %>% filter(val >= 5) %>% select(-val)

data.table