如何将数据表转换为列,例如:
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
答案 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)