Как применить функцию к каждому подключенному компоненту в графе / сети? - PullRequest
4 голосов
/ 05 мая 2011

У меня есть большой объект igraph 70 000+ вершин (узлов) и 200 000+ ребер (соединений). Я хотел бы рассчитать некоторые показатели центральности, но сеть слишком велика. Я думал, что хорошим решением будет разбить мою сеть на подключенные компоненты (даже самый большой не слишком большой).

Я думал об использовании функции igraph кластеров или связанных с ней методов. Могу ли я тогда рассчитать alpha.centrality () и bonpow () для кластеров? а затем объединить результаты обратно в исходный объект igraph? (или кадр данных со всеми вершинами)

Я не уверен в лучшем подходе, и мне было бы очень интересно услышать любые идеи, которые есть у людей. Большое спасибо:)

1 Ответ

4 голосов
/ 16 мая 2011

Вы можете использовать функцию decompose.graph в igraph для получения списка подключенных компонентов, а затем использовать lapply для запуска вашей функции (alpha.centrality или bonpow) для каждого из компонентов. После запуска decompose.graph может потребоваться освободить исходный график для повторного запроса некоторой памяти.

...