2011-05-04 44 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

相關問題