我试图计算我的图中每个顶点的聚类,其中聚类在顶点级定义为实际形成的可能的邻居间链接的百分比(例如,如果顶点i有4个邻居,邻居之间有六种可能的联系。)
我刚刚开始学习一些关于网络的更正式的事情,但似乎这应该是一个非常常见的操作/措施"紧张"一个网络。
但是,我无法找到使用selectAll("restaurant", new GetDataCallback(){
@Override
public void onGetMapData(MapData mapData) {
// Parse your data
}
@Override
public void onError() {
}
});
计算此功能的预制函数。 igraph
和clusters
函数似乎都在处理我所称的"组件",而我可以告诉他们这些只是cluster.distribution
的简称别名和分别为components
。
例如,对于component.distribution
,按顶点聚类为:
g = make_graph("Bull")
我可以通过以下
获得这个v | c
-------
1 | 1
2 | 1/3
3 | 1/3
4 | 0 [by convention]
5 | 0 [by convention]
但这看起来很冗长,可能效率低下。
使用library(igraph)
g = make_graph("Bull")
sapply(adjacent_vertices(g, seq_len(vcount(g))),
function(x) {
neigh = as.vector(x)
if (length(neigh) <= 1L) return(0)
sum(g[neigh, neigh])/
(length(neigh)^2 - length(neigh))})
# [1] 1.0000000 0.3333333 0.3333333 0.0000000 0.0000000
吗?
答案 0 :(得分:2)
clustering coefficient抓住了这一点。在igraph
中,通话为transitivity
。使用"local"
作为type
参数。您还可以指定是否需要0
或NA
用于隔离区:
library(igraph)
g = make_graph("Bull")
transitivity(g, type="local")
# [1] 1.0000000 0.3333333 0.3333333 NaN NaN
transitivity(g, type="local", isolates = "zero")
# [1] 1.0000000 0.3333333 0.3333333 0.0000000 0.0000000