r - iGraph 中的度函数

标签 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 到 36。但是,如果可用,level 将打印出节点 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/名称。最下面一行是学位。

关于r - iGraph 中的度函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51696973/

相关文章:

json - R:数据框到json数组对象

r - 在 tidygraph 中过滤

r - 当我在图中使用简化时绘制图形的问题

从R中的数据框中删除重复行

r - 获取一天内的事件总和

r - 在r中的igraph中均匀间隔顶点

python - igraph python 删除边框

python - 在python中使用 "igraph"读取加权图

r - 如何将子图应用于具有辅助 y 轴的图列表

r - 使用日期估算因子值