在R igraph中计算网络中连接最多的节点

时间:2016-10-06 10:38:36

标签: 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

如何获得具有更多连接的目标节点?在这种情况下,将是节点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 = x@Dim[1], dn[[1]], give.dn = FALSE) : index larger than maximal 12

如您所见,我收到错误消息

以下评论:通过以下内容我得到了目标节点的数量,但是如何获得具有最大数量的节点呢?

degree(g4, mode = "in")

有什么想法吗?

由于

1 个答案:

答案 0 :(得分: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