2016-10-06 76 views
1

我想統計單向網絡中具有更多接收連接數的節點數。計算網絡中連接數最多的節點R igraph

例如像這樣的網絡中:

g <- graph(c('A',1,'A',2,'A',3,'B',4,'B',5,'B',6,'C',7,'C',8,'D',7,'D',8)) 

我們將具有3個獨立的部件

在一個文件中(測試),我可以上傳並表示它裝載數據如下:

plot(g) 

plot graph

我怎樣才能獲得destina有更多連接的節點?在這種情況下將是節點7和8

繼另一個問題(r igraph most connected nodes)我試過如下:

lengths(as_adj_list(g)) 

A 1 2 3 B 4 5 6 C 7 8 D 
3 1 1 1 3 1 1 1 2 2 2 2 

結果計算所有節點的長度,但我看僅限目標節點。

我也試過:

sort(g, decreasing = TRUE) 

Error in intI(i, n = [email protected][1], dn[[1]], give.dn = FALSE) : index larger than maximal 12 

正如你看到的我得到一個錯誤信息

繼解說:用下面我得到的目的地節點的數量,但如何讓那些最大數量?

degree(g4, mode = "in") 

任何想法?

感謝

+1

你可以改善你的問題。請閱讀[如何在R中提供最小重現性示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#answer-5963610)。然後相應地編輯並改進它。好的帖子通常提供最少的輸入數據,所需的輸出數據和代碼嘗試 - 在新的/乾淨的R會話中進行全部複製 - 粘貼 - 運行。對於你的問題:'igraph :: degree(g,mode =「in」)'可能會有所幫助。 – lukeA

+0

謝謝盧克。我編輯了代碼來簡化。也感謝您的代碼建議。我不知道如何獲得最具聯繫的人:-( – Selrac

回答

4

你可以做

library(igraph) 
g <- graph(c('A',1,'A',2,'A',3,'B',4,'B',5,'B',6,'C',7,'C',8,'D',7,'D',8)) 
V(g)$indeg <- degree(g, mode = "in") 
V(g)[V(g)$indeg == max(V(g)$indeg)] 
# 2/12 vertices, named: 
# [1] 7 8 
+0

謝謝盧克,那太棒了!!謝謝。 – Selrac