使用来自iGraph的ego函数生成连接节点列表以通过函数进行解析

时间:2017-07-02 07:03:59

标签: r node.js igraph vertices sna

我在使用带有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 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 个答案:

答案 0 :(得分:2)

好的,所以我现在已经想出了如何做到这一点。

    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转换为矢量:)