在R

时间:2018-01-31 01:04:00

标签: r matrix

我需要做一个非常普遍的转变,但我忘了它是如何调用的。基本上我有一个矩阵:

enter image description here

我希望每行得到一个不同的矩阵:gene_id, Vx, num。例如:

WBGene00000001, V1, 0
WBGene00000002, V2, 0
...

我在R中有一个数据框,那么怎么能在那里找到它?

1 个答案:

答案 0 :(得分:2)

这听起来像是一个枢轴/单向操作。最简单的实现是通过tidyverse :: gather()函数:

x = readr::read_csv("gene_id,V1,V2\nWBGene00000001,0,0\nWBGene00000002,0,0")
x

         gene_id    V1    V2
           <chr> <int> <int>
1 WBGene00000001     0     0
2 WBGene00000002     0     0

tidyr::gather(x, varname, value, V1:V2)

         gene_id varname value
           <chr>   <chr> <int>
1 WBGene00000001      V1     0
2 WBGene00000002      V1     0
3 WBGene00000001      V2     0
4 WBGene00000002      V2     0