簡體   English   中英

使用R包“ igraph”清潔圖形

[英]Cleaning a graph with R package “igraph”

我需要“清理” R中的圖。通過清理,我的意思是我需要刪除所有未與特定節點鏈接的節點。 例如,如果在我的圖形中有4個節點,這些節點具有以下邊緣:

  • 1至3

  • 1比2

  • 4比2

我只想保留與邊1和邊1本身鏈接的節點,所以我需要刪除邊4。

igraph有什么方法可以構建一種算法來針對非常大的圖(例如超過1000個節點和1000000條邊)做到這一點?

使用subcomponentinduced.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM