我在使用 R 的 iGraph 包时遇到一些问题。特别是当我试图获取与给定 Node 相距 2 度以内的所有 Node 时,然后使用该列表通过函数运行一些操作。
我对 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
问题是我希望它返回一个 Node 列表,理想情况下只是一个显示 "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
}
基本上我想获取一个 Node ,然后获取在 X 度分离内与其连接的每个 Node 的列表。生成此列表后,我想将其输入到计算所提供列表中每个 Node 的入度的函数中。
任何帮助将不胜感激。我在下面提供了顶点 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 中的 ego 函数生成连接 Node 列表以通过函数进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44868286/