iGraph中的度函数

时间:2018-08-05 18:05:56

标签: r igraph

我正在iGraph R中使用degree函数,并得到以下结果

G<-read.graph("sample.graphml", format="graphml") 
degree(G)            

> degree(G)
 [1]   2  18   6  15  64  64  11  36  53  63  54  54  47  72  86  46  55  17
[19]   9  14  13   6  14  17  14   8  16   8  20  13  14  17  13  17  13   2

这些值是为每个节点计算的度,但是不显示相应的节点ID。我浏览了该函数的说明,但仍然找不到输出节点ID的参数。

dput(G)
structure(list(6, FALSE, c(1, 3, 5, 3, 4, 5, 5), c(0, 0, 1, 1, 
2, 2, 4), c(0, 1, 3, 4, 2, 5, 6), c(0, 1, 3, 2, 4, 5, 6), c(0, 
0, 1, 1, 3, 4, 7), c(0, 2, 4, 6, 6, 7, 7), list(c(1, 0, 1), structure(list(), .Names = character(0)), 
structure(list(id = c("6", "4", "2", "5", "1", "3")), .Names = "id"), 
list()), <environment>), class = "igraph")

> degree(G)            
[1] 2 3 2 2 2 3

1 个答案:

答案 0 :(得分:1)

输出是每个节点的度,使用其节点号作为顺序。如果只需要节点号,则没有太多理由打印数字1至36。但是,如果可用,degree将打印出节点 name 作为输出中元素的名称。例如,

## Sample graph
library(igraph)
set.seed(1234)
G = erdos.renyi.game(8, 0.35)

## make sure that each node has a name
V(G)$name = LETTERS[1:8]

## Display degree
degree(G) 
A B C D E F G H 
1 2 2 4 5 1 2 3

添加内容以响应添加的示例

首先,您似乎未使用igraph的当前版本。我建议更新到当前版本。但是,就像我前面的示例一样,您可以通过使用顶点的name属性来获得所需的内容。在您的示例中,未显示节点名称。

degree(G)
[1] 2 3 2 2 2 3

但是,如果我将id转移到name,则学位序列会标上名称。

V(G)$name = V(G)$id
degree(G)
6 4 2 5 1 3 
2 3 2 2 2 3 

第一行是ID /名称。最下一行是度。