在 igraph 中创建新度量
Posted
技术标签:
【中文标题】在 igraph 中创建新度量【英文标题】:Creating new measures in igraph 【发布时间】:2011-11-01 16:46:25 【问题描述】:我想为 Burt 的有效尺寸创建一个函数。 公式归结为:
有效尺寸 = n - 2t/n
其中 t 是关系数(不包括与自我的关系) n 是网络中的人数(不包括自我)。我不确定从哪里开始在 igraph 内/为 igraph 编写函数。
如果更详细的信息会有所帮助,请告诉我...
谢谢。
【问题讨论】:
提供一个示例图,以及到目前为止您为计算大小所做的尝试。 【参考方案1】:先模拟一个基本图:
require(igraph)
alters = 50
ties = 10
set.seed(12345)
edgelist = rbind(0, 1:alters)
edgelist = cbind(edgelist, replicate(ties, sample(alters, 2)))
g = graph(edgelist, directed=F)
dev.new(width=5, height=5)
plot(g, layout=layout.kamada.kawai)
然后编写一个简单的函数来计算有效尺寸。 (这里在g
上运行的函数都很好地记录在igraph
手册和网络上的各种示例中。)
EffectiveSize <- function(g, ego=0)
n = neighbors(g, ego)
t = length(E(g)[to(n) & !to(ego)])
n = length(n)
n - 2 * t / n
> EffectiveSize(g)
[1] 49.6
【讨论】:
啊。谢谢!对于多余/基本的问题,我很抱歉,但我真的不确定我是否必须在 C 中调用/编辑。我没有意识到我可以创建普通的 R 函数来使用 igraph。 是的,它真的很灵活。 igraph 也是一个很棒的包,通过这些巧妙的方法在顶点和边上进行索引/迭代。祝你的项目好运!以上是关于在 igraph 中创建新度量的主要内容,如果未能解决你的问题,请参考以下文章