gpt4 book ai didi

r - 在 R 中如何从 igraph 中删除小社区

转载 作者:行者123 更新时间:2023-12-05 01:01:27 25 4
gpt4 key购买 nike

在 R 网络图中如何去除小社区(两个节点与一条边相连,与其他节点不相连,如本例中的 jane 和 ike:

library(igraph)
g <- graph_from_literal(Andre----Beverly:Diane:Fernando
Beverly--Garth:Ed,
Carol----Andre:Diane:Fernando,
Diane----Andre:Carol:Fernando:Beverly,
Fernando-Carol:Andre:Diane:Heather,
Jane-----Ike )
plot(g, vertex.label.color="blue", vertex.label.cex=1.5,
vertex.label.font=2, vertex.size=25, vertex.color="white",
vertex.frame.color="white", edge.color="black")

最佳答案

这是一个可能的解决方案,使用 components 来查找子图,然后进行一些计数。您还可以查看 igraph 中的函数,例如 groupssizes 来执行这些获取子图顶点计数和顶点名称的操作。

library(igraph)
g <- graph_from_literal(Andre----Beverly:Diane:Fernando,
Beverly--Garth:Ed,
Carol----Andre:Diane:Fernando,
Diane----Andre:Carol:Fernando:Beverly,
Fernando-Carol:Andre:Diane:Heather,
Jane-----Ike )

#get all subgraphs
sub_gs <- components(g)$membership

#find which subgraphs have 2 nodes
small_sub <- names(which(table(sub_gs) == 2))

#get names of nodes to rm
(rm_nodes <- names(which(sub_gs == small_sub)))
# [1] "Jane" "Ike"

#remove nodes by name
g2 <- delete_vertices(g, rm_nodes)

关于r - 在 R 中如何从 igraph 中删除小社区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com