[英]How to get the longest flow matrix of a graph with r-igraph package?
[英]Cleaning a graph with R package “igraph”
我需要“清理” R中的图。通过清理,我的意思是我需要删除所有未与特定节点链接的节点。 例如,如果在我的图形中有4个节点,这些节点具有以下边缘:
1至3
1比2
4比2
我只想保留与边1和边1本身链接的节点,所以我需要删除边4。
igraph有什么方法可以构建一种算法来针对非常大的图(例如超过1000个节点和1000000条边)做到这一点?
使用subcomponent
和induced.subgraph
:
edges_df <- data.frame(from = c(1, 1, 4), to = c(3, 2, 2))
g1 <- graph.data.frame(edges_df, directed = TRUE)
g2 <- induced.subgraph(g1, subcomponent(g1, "1", mode = "out"))
至于“大”图:1000不是很大。 在我的笔记本电脑上:
system.time({
g3 <- graph.full(n = 1000, directed = TRUE)
g4 <- induced.subgraph(g3, subcomponent(g3, "1", mode = "out"))
})
# user system elapsed
# 0.47 0.10 0.57
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.