开发者

How do I apply a function to each connected components within a graph/network?

开发者 https://www.devze.com 2023-03-03 13:41 出处:网络
I have a large igraph object 70,000+ vertices (nodes) and 200,000+ edges (connections).I\'d like to calculate some measures of centrality but the network is too big.I thought a good work around would

I have a large igraph object 70,000+ vertices (nodes) and 200,000+ edges (connections). I'd like to calculate some measures of centrality but the network is too big. I thought a good work around would be to break my network into connected components (even the largest isn't too big).

I was thinking about using the igraph func开发者_JAVA百科tion clusters or related methods. Could I then calculate alpha.centrality() and bonpow() on the clusters? and then merge the results back into the original igraph object? (or a dataframe with all vertices)

I'm not sure of the best approach and I'd be really interested to hear any ideas people have. Many thanks :)


You can use the decompose.graph function in igraph to obtain a list of the connected components, then use lapply to run your function (alpha.centrality or bonpow) on each of the components. After having run decompose.graph, you may want to deallocate your original graph to re-claim some memory.

0

精彩评论

暂无评论...
验证码 换一张
取 消