如何将两列中的数据转换为矩阵?

时间:2017-02-28 02:44:39

标签: r

我还没有学会如何与R合作。我打算将来,但这个具体问题需要我立即关注。

我试图将两列数据导入Gephi进行可视化。具体来说,我试图转换它:

A x
A y
A z

B x
B y
B w

进入这个:

  x y z w
x 0 2 1 1
y 2 0 1 1
z 1 1 0 0
w 1 1 0 0

之后,我需要取矩阵的顶部三角形并将其放入以下格式:

x y 2
x z 1
x w 1
y z 1
y w 1
z w 0

我不知道如何调用这些进程,因此我在Google和Google上的搜索都是空的。

有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

找到它。这被称为共生矩阵。对角线元素为零,因为我计算它们与一组中的其他人一起出现的次数,但不是自己。以下代码有效:

V <- crossprod(table(dat[1:2]))
diag(V) <- 0
V

Source

我运行下面的代码,最后得到一个较低的三角矩阵

V[upper.tri(V)] = NA

然后这最终得到了联合对应列

library(reshape2)
df <- melt(V, na.rm=TRUE)

Source