将顶点序列列表转换为R中的表格



我正在使用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。

这里的重点是您有一个未定义的图(您可以使用返回NULLV(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

这将为您提供顶点及其阶数的完整列表。

最新更新