添加中心性度量作为顶点属性

Posted

技术标签:

【中文标题】添加中心性度量作为顶点属性【英文标题】:Adding centrality measures as vertex attributes 【发布时间】:2018-03-14 15:18:23 【问题描述】:

我正在尝试将中心性度量作为属性添加到“主图”g_master。这是我的代码:

library(igraph)
#generate master graph
g <- sample_pa(10000)
g_in <- degree(g, mode="in")
g_out <- degree(g, mode="out")
g_inclo <- closeness(g, mode="in")
g_outclo <- closeness(g, mode="out")
g_bet <- betweenness(g)
set_vertex_attr(g, "name", index=V(g), value = V(g))
g_master <- data.frame(V(g), g_in, g_out, g_inclo, g_outclo, g_bet)

但我得到以下信息:

> g_master <- data.frame(V(g), g_in, g_out, g_inclo, g_outclo, g_bet)
Error in as.data.frame.default(x[[i]], optional = TRUE) : 
  cannot coerce class ""igraph.vs"" to a data.frame

代码的其他部分很好。

【问题讨论】:

【参考方案1】:

正如错误所说,尝试使用 igraph.vs 类的东西时会遇到问题。特别是,是V(g) 引起了问题。但我们可以强制如下:

g_master <- data.frame(V = as.vector(V(g)), g_in, g_out, g_inclo, g_outclo, g_bet)
head(g_master, 2)
#   V g_in g_out      g_inclo   g_outclo g_bet
# 1 1  208     0 2.193608e-05 1.0001e-08     0
# 2 2   48     1 1.042957e-08 1.0002e-08   411

【讨论】:

以上是关于添加中心性度量作为顶点属性的主要内容,如果未能解决你的问题,请参考以下文章

GLSL 每个顶点固定大小的数组

OpenGL学习——绘制三角形

如何声明和使用作为 OpenGL 中原始元素数组的顶点属性

如何在 GLSL 中使用 4x4 矩阵作为顶点属性?

在网格中的三角形顶点之间进行插值

使用 boost 作为向量的元素在图中添加顶点