Использование функции эго из 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 в вектор:)