我有下面的网络图:
library(tidyverse)
library(igraph)
set.seed(123)
n=15
data = tibble(d = paste(1:n))
relations = tibble(
from = sample(data$d),
to = lead(from, default=from[1]),
)
graph = graph_from_data_frame(relations, directed=T, vertices = data)
V(graph)$color <- ifelse(data$d == relations$from[1], "red", "orange")
plot(graph, layout=layout.circle, edge.arrow.size = 0.2)
我学会了如何删除这个图表中的所有"边":
g <- graph-E(graph)
plot(g)
现在,我try 做同样的事情,但使用"循环"代替:
for (i in 1:15)
for (j in 1:15) {
graph <- graph - edge(paste0(i, "|", j))
}
但我认为问题在于,上面的代码试图删除存在的"边",当命令删除不存在的边时,该代码无法"跳过"(覆盖)实例:
Error in delete_edges(e1, unlist(e2, recursive = FALSE)) :
At iterators.c:1828 : Cannot create iterator, invalid edge id, Invalid vertex id
是否有方法指示该"循环"跳过两条边没有连接的每个实例,并继续循环,直到循环完成?
非常感谢.