使用 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 转换为向量 :)
我在使用 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 转换为向量 :)