Использование функции эго из iGraph для генерации списка подключенных узлов для анализа через функцию

У меня возникли некоторые проблемы при работе с пакетом iGraph с R. В частности, когда я пытаюсь получить все узлы в пределах 2 градусов разделения от данного узла, затем использую этот список для запуска некоторых операций через функцию.

Я не очень уверен, как работают списки в R, не говоря уже о классах iGraph.vs.

В идеале я хотел бы создать список вершин, используя ego до второй степени Listnode_test <- (ego(Graph1, 2, "accumsan")), Это возвращает Listnode_test, Вот вывод:

structure(list(structure(c(1L, 3L, 5L, 9L, 10L, 11L, 16L, 24L, 1 c(1, 3, 5, 9, 10, 11, 16, 24, 32, 59, 64, 2, 4, 6, 14, 15, 1

Проблема в том, что я хочу, чтобы он возвращал список узлов, в идеале, просто список, который говорит "node1, node2, node3" и т.д., чтобы я мог запустить их через такую ​​функцию:

for (i in 1:length(Listnode_test[[1]]))
{
  Perspective <- 1
  Listnode <- neighborhood.size(Graph1, 1, Listnode_test[[1]][i], mode="in")
  ##a save script either to a DF or global env
}

По сути, я хочу получить узел, а затем получить список каждого узла, который подключен к нему в пределах X степени разделения. После того, как я сгенерировал этот список, я хочу передать его в функцию, которая вычисляет градусы для каждого узла в представленном списке.

Любая помощь будет принята с благодарностью. Я привел пример вершин DF ниже:

> vertices from to query 1 accumsan a Benefit 2 nonummy a Benefit 3 mollis a Benefit 4 velit a Benefit 5 et a Benefit 6 vulputate a Benefit 7 magna a Benefit 8 et a Risk 9 feugiat ac Benefit 10 feugiat ac Sequential 11 mollis accumsan Benefit 12 a accumsan Benefit 13 mauris accumsan Benefit 14 et accumsan Benefit 15 fermentum accumsan Other 16 mollis accumsan Scope

1 ответ

Решение

Хорошо, я понял, как это сделать сейчас.

    node.list <- Listnode_test[[1]][i]
    > node.list
    + 1/68 vertex, named:
    [1] vel

    node.list <- as_ids(node.list)

    > as_ids(node.list)
    [1] "vel"


> node.list <- as_ids(node.list)
> df <- data.frame (node.list, in.degree, perspective)
> df
  node.list in.degree perspective
1       vel         2           1

as_ids() функция в iGraph конвертирует iGraph.vs в вектор:)

Другие вопросы по тегам