如何将表转换为列R

时间:2015-07-21 18:47:56

标签: r

如何将数据表转换为列,例如:

  AB CD EF JK LM
X 6  0  5  0  0
Y 0  7  0  0  0
Z 0  0  8  0  0 
A 0  0  0  9  0
B 0  0  0  6  10

      V1   V2   
 X    AB   6 
 X    EF   5
 Y    CD   7 
 Z    EF   8
 A    JK   9
 B    LM   10
 B    JK   6

1 个答案:

答案 0 :(得分:0)

一种选择是将'data.frame'转换为'矩阵',将melt转换为subset将'value'转换为非'0'。

 library(reshape2)
 subset(melt(as.matrix(df1)), value!=0)

或者

 library(dplyr)
 library(tidyr)
 add_rownames(df1, 'rn') %>%
          gather(V1, V2, -rn) %>%
          filter(V2!=0)