get.edgelist的輸出()我想知道如何解釋get.edgelist()
命令的輸出igraph
在R.如何解釋的igraph
比如我生成一個隨機圖:
a=erdos.renyi.game(100,0.5, directed=TRUE)
a=get.edgelist(a)
這給了我兩列,我會認爲第一個代表節點,第二個代表相應的連接。
但這似乎並不是這種情況,因爲有些數字只在第二列顯示,而不是第一列。怎麼會這樣?
get.edgelist的輸出()我想知道如何解釋get.edgelist()
命令的輸出igraph
在R.如何解釋的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
非常感謝您的幫助。我的問題是,如果你看看上面的邊界列表中的剩餘數字,那麼你會發現第10列中只有5個聯繫人,而其他人有6個。這就是我不明白 – user1723765
是的。所以沒有辦法確保每個節點總是有5個,但有沒有辦法確保每個節點至少有5個? – user1723765
是的,以及問題是我想看看重新佈線的不同概率,但對於每個代理的每個情況超過5個聯繫人。我想我只能做到這一點,如果我增加n。謝謝你的幫助 – user1723765
但是如果那麼我會期望如果我生成一個有向圖,那麼節點97的所有連接都應該在第一列,但它比其他節點少。 – user1723765
我認爲你可能混合了定向和無向?在有向圖中,邊從*一個節點*到另一個節點,在無向圖中,方向無關緊要。 – Marius