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

Using ego function from iGraph to generate a list of connected nodes to parse through a function

我在使用 R 的 iGraph 包时遇到了一些问题。特别是当我试图让所有节点与给定节点的分离度在 2 度以内时,然后使用该列表 运行 一些通过函数进行操作。

我对 R 中列表的工作方式不是很有信心,更不用说 iGraph.vs 类 了。

理想情况下,我想使用 ego 到二阶 Listnode_test <- (ego(Graph1, 2, "accumsan")) 生成顶点列表。这 returns 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

问题是我希望它 return 一个节点列表,理想情况下只是一个显示 "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

好的,我现在知道怎么做了。

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