如何使用 igraph 确定 R 中每个簇的顶点数
How to determine number of vertices per cluster in R with igraph
通常情况下,当我想确定一个图的顶点数时,我只需要在我的脚本中编写:
library(igraph)
vcount('name of your graph')
然后我就有了。
问题是我正在尝试确定每个集群(社区)的顶点数,但我不知道该怎么做。 igraph 中有什么函数可以帮助我做到这一点吗?
到目前为止,这是我的代码:
library(igraphdata)
library(igraph)
data("UKfaculty")
newgraph <- as.undirected(UKfaculty)
cluster <- cluster_louvain(newgraph)
plot(newgraph, vertex.color=rainbow(5, alpha=0.6)[cluster$membership])
igraph 中是否有任何函数可以帮助我确定每个簇的顶点数?
我认为这可以满足您的需求。首先,将社区成员资格分配给节点:
V(newgraph)$community <- membership(cluster)
现在您可以创建一个基于社区的子图并对其应用vcount
:
vcount(induced_subgraph(newgraph, v = V(newgraph)$community == 1))
[1] 18
并使用 sapply
获取所有 5 个社区的计数:
sapply(1:5, function(x) vcount(induced_subgraph(newgraph, v = V(newgraph)$community == x)))
[1] 18 19 27 6 11
尝试table
> table(cluster$membership)
1 2 3 4 5
18 19 27 6 11
为此,有一个名为 sizes()
的 igraph 函数。您可以使用 sizes(cluster)
.
通常情况下,当我想确定一个图的顶点数时,我只需要在我的脚本中编写:
library(igraph)
vcount('name of your graph')
然后我就有了。
问题是我正在尝试确定每个集群(社区)的顶点数,但我不知道该怎么做。 igraph 中有什么函数可以帮助我做到这一点吗?
到目前为止,这是我的代码:
library(igraphdata)
library(igraph)
data("UKfaculty")
newgraph <- as.undirected(UKfaculty)
cluster <- cluster_louvain(newgraph)
plot(newgraph, vertex.color=rainbow(5, alpha=0.6)[cluster$membership])
igraph 中是否有任何函数可以帮助我确定每个簇的顶点数?
我认为这可以满足您的需求。首先,将社区成员资格分配给节点:
V(newgraph)$community <- membership(cluster)
现在您可以创建一个基于社区的子图并对其应用vcount
:
vcount(induced_subgraph(newgraph, v = V(newgraph)$community == 1))
[1] 18
并使用 sapply
获取所有 5 个社区的计数:
sapply(1:5, function(x) vcount(induced_subgraph(newgraph, v = V(newgraph)$community == x)))
[1] 18 19 27 6 11
尝试table
> table(cluster$membership)
1 2 3 4 5
18 19 27 6 11
为此,有一个名为 sizes()
的 igraph 函数。您可以使用 sizes(cluster)
.