簡體   English   中英

樹狀圖中連接節點的數量

[英]Number of Connected Nodes in a dendrogram

最近剛開始使用 tidygraph 和 ggraph 包,遇到了一個相對簡單的問題,但奇怪的是,似乎找不到簡單的解決方案。 在一個網絡中,有多少節點從單個父節點向下連接? 似乎是一個相當簡單的問題,但一直在努力得出答案,尤其是當有多個“父/子”關系需要展開時。

# reproducible example -----------------

library(tidygraph)
library(ggraph)
library(tidyverse)

parent_child <- tribble(
  ~parent, ~child,
        "a", "b",
        "b", "c",
        "b", "d",
        "d", "e",
        "d", "f",
        "d", "g",
        "g", "z"
)

# converted to a dendrogram ------------

parent_child %>% 
  as_tbl_graph() %>% 
  ggraph(layout = "dendrogram") +
  geom_node_point() +
  geom_node_text(aes(label = name),
                 vjust = -1,
                 hjust = -1) +
  geom_edge_elbow()

這個結果是一個網絡在此處輸入圖片說明

我想知道的; 移出/向下時(忽略節點“a”)有多少個節點連接到點“b”? 我期望的答案是 6,或者,包括“b”,然后是 7。

我在大約 5000 個人的網絡上運行它,所以按名稱過濾單個節點不是一個很好的解決方案。 我辦公室里沒有其他人熟悉網絡分析,所以我只能自己解決這個問題。 真的希望有人有見地! 同時將繼續審查問題和可能的解決方案:) 謝謝大家!

一種方法是使用igraph包中的ego_size() 它需要一個order參數,但您可以使用邊數來捕獲鄰域的最大可能順序。

library(igraph)

g <- graph_from_data_frame(parent_child)

ego_size(g, order = ecount(g), nodes = "b", mode = "out", mindist = 1)

[1] 6

對於多個節點,只需傳遞感興趣節點的向量:

ego_size(g, order = ecount(g), nodes = c("b", "d", "g"), mode = "out", mindist = 1)

[1] 6 4 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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