如何融合R中的数据?

时间:2014-04-22 20:01:19

标签: r matrix dataframe melt

我有一个描述不同人之间关系的矩阵。如果我和人之间有任何联系,那么" 1"在特定的单元格中,否则 - " 0"。如何将其转换为具有两列的data.frame,如下所示:

person1 - person4

person1 - person6

person2 - person1

1 个答案:

答案 0 :(得分: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