gpt4 book ai didi

r - igraph delete_edges 行为异常

转载 作者:行者123 更新时间:2023-12-04 15:20:06 25 4
gpt4 key购买 nike

我正在尝试从图中删除一条边。

我运行了以下代码

library(igraph)

A <- c(0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0)
dim(A) <- c(5,5)
g1 <- graph_from_adjacency_matrix(t(A), mode = c("directed"))

g1 <- delete_edges(g1, c(1,2))
g1 <- simplify(g1)

coords <- c(0.0, 0.951056, 0.587785, -0.587785, -0.951056,
1, 0.309017, -0.809017,-0.809017, 0.309017)
dim(coords) <- c(5,2)

plot(g1,
vertex.color=c(rgb(0,.5,.7),
rgb(.15,.6,0),
rgb(.5,.5,.5),
rgb(.8,.55,0),
rgb(.8,0,0)),
vertex.size = 20,
layout = coords,
main = paste("Graph", toString(1)))

并产生了以下内容

enter image description here

我希望删除 1->2 边,但保留 2->3 边。关于正在发生的事情以及如何解决它有什么想法吗?

最佳答案

delete_edges 函数假定您传入边索引。你可以看到边缘

E(g1)
# + 5/5 edges from faf79f6:
# [1] 1->2 2->3 3->4 4->5 5->1

因此,当您指定 c(1,2) 时,您指定的是第一条边和第二条边,而不是从顶点 1 到 2 的边。如果您想这样做,您可以做

g1 <- delete_edges(g1, E(g1)[1 %--% 2])

另一种方法是

g1 <- g1 - edge("1|2")

如果您确实有一个要为其提取边的顶点序列,则可以使用 E()` 函数的 P= 参数。例如

g1 <- delete_edges(g1, E(g1, P=c(1,2,3,4)))

这将删除从 1 到 2,以及从 3 到 4 的边。

关于r - igraph delete_edges 行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63514342/

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