我想知道如何在 R中解释get.edgelist()
命令的输出。igraph
例如我生成一个随机图:
a=erdos.renyi.game(100,0.5, directed=TRUE)
a=get.edgelist(a)
这给了我两列,我认为第一列代表节点,第二列代表相应的连接。
但情况似乎并非如此,因为某些数字仅在第二列中表示,而不是在第一列中。怎么会这样?
我想知道如何在 R中解释get.edgelist()
命令的输出。igraph
例如我生成一个随机图:
a=erdos.renyi.game(100,0.5, directed=TRUE)
a=get.edgelist(a)
这给了我两列,我认为第一列代表节点,第二列代表相应的连接。
但情况似乎并非如此,因为某些数字仅在第二列中表示,而不是在第一列中。怎么会这样?
通过创建一个小例子,它可能变得很明显吗?
set.seed(45)
g <- erdos.renyi.game(10, 0.5, directed = TRUE)
> get.adjacency(g)
10 x 10 sparse Matrix of class "dgCMatrix"
[1,] . 1 . 1 . . 1 1 1 1
[2,] . . . 1 . 1 1 1 1 .
[3,] 1 1 . 1 . 1 . . 1 .
[4,] 1 1 . . . . 1 1 1 1
[5,] . 1 . . . . 1 . . 1
[6,] . 1 1 1 1 . 1 . . .
[7,] 1 . 1 . . 1 . . 1 .
[8,] . 1 1 1 . 1 . . 1 .
[9,] 1 . 1 1 . 1 . . . 1
[10,] 1 . 1 . 1 1 . . 1 .
edges <- as.data.frame(get.edgelist(g))
edges <- edges[order(edges$V1, edges$V2), ]
> head(edges, 11)
V1 V2
7 1 2
18 1 4
34 1 7
39 1 8
42 1 9
1 1 10
19 2 4
28 2 6
35 2 7
40 2 8
43 2 9
从邻接矩阵可以看出,从 到 有边row 1
,2,4,7,8,9,10
这也反映在从 的输出中get.edgelist
。它准确地为您提供了邻接矩阵中的内容。
> table(edges$V1)
# 1 2 3 4 5 6 7 8 9 10
# 6 5 5 6 3 5 4 5 5 5