我在使用带有R的iGraph软件包时遇到了一些麻烦。特别是当我试图使所有节点与给定节点的距离在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 query1 accumsan a Benefit2 nonummy a Benefit3 mollis a Benefit4 velit a Benefit5 et a Benefit6 vulputate a Benefit7 magna a Benefit8 et a Risk9 feugiat ac Benefit10 feugiat ac Sequential11 mollis accumsan Benefit12 a accumsan Benefit13 mauris accumsan Benefit14 et accumsan Benefit15 fermentum accumsan Other16 mollis accumsan Scope

最佳答案

好的,我现在想出了办法。

    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


iGraph中的as_ids()函数将iGraph.vs转换为向量:)

08-24 13:34