r - iGraph 中的度数函数
问题描述
我degree
在 iGraph R 中使用该函数并得到以下结果
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。但是,如果可用, degree
会将节点名称打印为输出中元素的名称。例如,
## 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/name。最下面一行是学位。
推荐阅读
- php - Smarty Foreach 循环将 +1 添加到它打印出来的类
- java - 在Java中向鼠标方向发送圆圈
- laravel - Laravel5.6 - 验证表单失败后,如何从父视图设置变量
- http - Crystal-lang 无重载匹配 'HTTP::Server.new' 类型为 Int32 http 服务器
- javascript - 为什么 window.scrollTo() 需要 setTimeout() 才能工作?
- linux - 错误:无效参数:–invPtrLoc
- deployment - 谷歌云计算,使用环境变量
- azure-data-factory - Azure datafactory V2-活动运行切片不可见
- node.js - 如何在节点中将 swagger 与 restify 框架集成?
- javascript - 访问 shadow dom 属性