我正在使用igraph
包中的函数adjacent_vertices()
。它返回顶点序列的列表。
library(igraph)
g <- make_graph("Zachary")
mylist <- adjacent_vertices(g, c(1,2), mode="out")
# [[1]]
+ 16/34 vertices, from 5feb73a:
[1] 2 3 4 5 6 7 8 9 11 12 13 14 18 20 22 32
# [[2]]
+ 9/34 vertices, from 5feb73a:
[1] 1 3 4 8 14 18 20 22 31
我需要找到一个简短的结果演示,如下所示:
V Count
[1] 16
[2] 9
这里V是顶点名称,Count为out度。
我尝试过使用:
degree(g)[1]
# 16
degree(g)[2]
# 9
问题是否可以将列表转换为表,或者igraph
包中是否存在内置函数?
编辑原始图形中的顶点数超过100。
这里的重点是您有一个未定义的图(您可以使用返回NULL
的V(g)$name
看到它(。在这种情况下,可以使用顶点id
而不是name
。
要获得顶点id
,必须使用V(g)
。可以使用as.vector(V(g))
将此igraph.vs
对象转换为矢量。这将提供包含所有顶点CCD_ 12的向量。
然后,您可以将as.vector(V(g))
和degree()
函数组合起来,使用获得您的表(data.frame
(
data.frame(V = as.vector(V(g)),
Count = degree(g, v = V(g), mode = "out"))
# outupt
V Count
1 1 16
2 2 9
3 3 10
4 4 6
5 5 3
6 6 4
7 7 4
8 8 4
9 9 5
10 10 2
11 11 3
12 12 1
13 13 2
14 14 5
15 15 2
16 16 2
17 17 2
18 18 2
19 19 2
20 20 3
21 21 2
22 22 2
23 23 2
24 24 5
25 25 3
26 26 3
27 27 2
28 28 4
29 29 3
30 30 4
31 31 4
32 32 6
33 33 12
34 34 17
这将对您有所帮助。首先,获取相邻顶点的列表顶点。
vlist=V(g)$name
vercount=adjacent_vertices(g, vlist, mode="out")
现在为顶点名称和顶点阶数制作两个向量。
vertexname=vector(`)
vertexcount=vector()
然后找到相邻顶点的计数。
for(i in 1:length(vlist))
{
vertexname[i]=vlist[i]
vertexcount[i]=length(vercount[[i]])
}
df=data.frame(vertexname,vertexcount)
df
这将为您提供顶点及其阶数的完整列表。