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