2014-04-22 28 views
0

我有一个矩阵描述不同人之间的关系。如果人与人之间有任何联系,则在特定单元中有“1”,否则 - “0”。如何变成一个data.frame这有两列看起来像:如何融化R中的数据?

PERSON1 - person4

PERSON1 - person6

PERSON2 - PERSON1

+0

[熔体下半部矩阵中R]可能重复(http://stackoverflow.com/questions/8221630/melt-the-lower-half-matrix-在-R) –

回答

1

melt使用从reshape2

library(reshape2) 
set.seed(1) 
mx <- matrix(sample(0:1, 9, r=T), nrow=3, dimnames=replicate(2, paste0("p", 1:3), s=F)) 
# p1 p2 p3 
# p1 0 1 1 
# p2 0 0 1 
# p3 1 1 1 

melt(mx) 
# Var1 Var2 value 
# 1 p1 p1  0 
# 2 p2 p1  0 
# 3 p3 p1  1 
# 4 p1 p2  1 
# 5 p2 p2  0 
# 6 p3 p2  1 
# 7 p1 p3  1 
# 8 p2 p3  1 
# 9 p3 p3  1