2011-05-04 11 views
4

我有一个大的igraph对象70,000多个顶点(节点)和200,000多个边(连接)。我想计算一些中心度量,但网络太大。我认为一个好的解决办法是将我的网络分解为连接的组件(即使最大的也不是太大)。如何将函数应用于图形/网络中的每个连接组件?

我正在考虑使用igraph函数clusters或相关方法。然后我可以计算集群上的alpha.centrality()和bonpow()吗?然后将结果合并回原始的igraph对象中? (或与所有顶点的数据帧)

我不确定最好的方法,我真的很有兴趣听到任何想法的人。非常感谢:)

+0

没有完全理解你的结构很难说,但如果每个节点都是列表中的一个元素(),你可以使用llply()并离开计算机一会儿:) – 2011-05-04 21:29:26

+0

@Brandon你的意思是每个_italic_connected component_italic_是列表中的元素?由于我所指的功能需要在每个节点所属的最大连接组件上进行计算。 – 2011-05-04 21:59:48

回答

4

可以使用decompose.graph功能的igraph获得连接组件的列表,然后使用lapply对每个组件的运行功能(alpha.centralitybonpow)。在运行decompose.graph之后,您可能需要取消分配原始图来重新声明某些内存。

+0

@Michael如果您的计算机上有一些备用内核或访问具有多个内核的机器,可能需要考虑使用SNOW软件包中的parLapply来加快速度。 – jkenney9 2015-11-03 02:54:15

相关问题