在R中计算数据框中的出现次数

19

我有一个数据框,其中有200列,每列包含150个基因(行)。

我想计算整个数据框中每个基因出现的次数。

mydat <-

    V1       V2       V3        V4       V5       V6        V7       V8  
1   TGFBR2   TGFBR2   TGFBR2    TGFBR2   TGFBR2   TGFBR2    TGFBR2   TGFBR2
2   MAML2    MAML2    MAML2     MAML2    MAML2    MAML2     MAML2    MAML2
3   BMPR2    EIF5A    WRAP53    WRAP53   EIF5A    EIF5A     EIF5A    EIF5A
4   EIF5A    BMPR2    EIF5A     EIF5A    ADAMTSL3 BMPR2     WRAP53   BMPR2
5   EIF5AL1  WRAP53   ADAMTSL3  BMPR2    BMPR2    WRAP53    BMPR2    EIF5AL1
6   WRAP53   EIF5AL1  BMPR2     ADAMTSL3 WRAP53   EIF5AL1   EIF5AL1  WRAP53
7   TBC1D5   ADAMTSL3 EIF5AL1   EIF5AL1  EIF5AL1  ADAMTSL3  ADAMTSL3 C1QTNF7
8   ADAMTSL3 C1QTNF7  C1QTNF7   C1QTNF7  FHL1     YAP1      AURKB    ADAMTSL3
9   C1QTNF7  FHL1     RGS7BP    LIFR     C1QTNF7  TMEM43    C1QTNF7  LIFR
10  AURKB    RGS5     AURKB     FAM198B  AURKB    C1QTNF7   PSMB6    PDGFD

所以我希望输出的结果是这样的:

occurences
TGFBR2: 8
MALM2 : 8
FHL1:   3

等等。我想要在数据框中数每个基因。

我该怎么做?


将@CathG和@Sven建议的代码用as.data.frame(...)包装起来,你会得到一个漂亮的数据框。 - KFB
3个回答

28

尝试

occurences<-table(unlist(mydat))

(我已经分配了结果,这样您就不会看到一整个基因名称屏幕,并且每个基因的出现都可以通过occurences["genename"]进行访问)


10
table(unlist(mydat))

能解决问题。

ADAMTSL3    AURKB    BMPR2  C1QTNF7    EIF5A  EIF5AL1    MAML2   TBC1D5 
       8        4        8        8        8        8        8        1 
  TGFBR2   WRAP53     FHL1     RGS5   RGS7BP  FAM198B     LIFR   TMEM43 
       8        8        2        1        1        1        2        1 
    YAP1    PSMB6    PDGFD 
       1        1        1 

1
CathG的回答有详细的解释,因此更优秀。 - Liz Young

1

另一种选项是使用tablestack,将多个向量连接成一个向量,并附带一个因子指示每个观测值的来源,以便您可以像这样计算values

table(stack(df)$values)
#> 
#> ADAMTSL3    AURKB    BMPR2  C1QTNF7    EIF5A  EIF5AL1  FAM198B     FHL1 
#>        8        4        8        8        8        8        1        2 
#>     LIFR    MAML2    PDGFD    PSMB6     RGS5   RGS7BP   TBC1D5   TGFBR2 
#>        2        8        1        1        1        1        1        8 
#>   TMEM43   WRAP53     YAP1 
#>        1        8        1

使用reprex v2.0.2于2022年10月21日创建


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接