gpt4 book ai didi

R 和 Igraph 边

转载 作者:行者123 更新时间:2023-12-01 11:42:04 29 4
gpt4 key购买 nike

我最终希望通过删除具有 2 个顶点的连接组件(即两个顶点之间有一条边)来获得我的图的一个子集您可以将这个问题改写为:

 given an edge e = (s, d) if degree(s) == degree(d) == 1 then delete edge e

我正在使用 R 和 Igraph,我该怎么做?我知道我可以通过执行以下操作对我的图进行子集化以删除所有度数为零的节点:

g = some_graph()
ldegs <- V(g)[degree(g) < 1]
g = delete.vertices(g, ldegs)

提前致谢!

最佳答案

我认为这并不难,您只需找到度数 == 1 的节点列表,找到它们的邻居,如果列表中有任何邻居,则删除它们:

library(igraph)
g = erdos.renyi.game(100, 0.02)
ones = V(g)[degree(g) == 1]
one_ns = sapply(ones, neighbors, graph=g)
# If any of the neighbours are in ones, we
# can delete these
to_delete = one_ns[one_ns %in% ones]
# Visualize:
plot(g, mark.groups=to_delete)

关于R 和 Igraph 边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19287149/

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