【发布时间】:2016-04-02 20:16:19
【问题描述】:
我有一个这样的列表:
> print(list)
[[1]]
[1] 1
[[2]]
[1] 4
[[3]]
[1] 1
[[4]]
[1] 2
[[5]]
[1] 2
[[6]]
[1] 3
[[7]]
[1] 2
[[8]]
[1] 5
[[9]]
[1] 1
[[10]]
[1] 2
[[11]]
[1] 3
[[12]]
[1] 7
[[13]]
[1] 3
[[14]]
[1] 4
[[15]]
[1] 3
[[16]]
[1] 5
[[17]]
[1] 1
[[18]]
[1] 1
[[19]]
[1] 4
[[20]]
[1] 6
现在我想把这个列表变成一个邻接矩阵,这样我就可以构建一个不简单的非直接图(可能存在多链接和自循环)。
这个列表应该成对读取,即(1 4)表示存在从节点1到节点4的链接,对(1 2)表示存在从节点1到节点2的链接,以此类推。
我该怎么做?
我以为我用 step = 2 的 for 循环来迭代列表,但我还没有找到怎么做。 而且我不确定如何分配矩阵的值,我分配给多链接什么?
非常感谢
【问题讨论】:
-
您可以使用
matrix(unlist(list), ncol=2)轻松创建边缘列表您是否使用igraph之类的库?我不完全理解所需的输出是什么。 -
@MrFlick 感谢您的回复。是的,我正在使用 igraph。不,我没有矩阵。我只有代表链接的列表(成对阅读时)。我没有从数组或图表生成列表。我只有那个清单。
标签: r adjacency-matrix