我在 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/