簡體   English   中英

使用 ggraph 和 R 中的 tidygraph 生成具有 csv 屬性的多網絡圖

[英]Generating multiple network graphs with attributes from csv with ggraph, tidygraph in R

我有三個 csv 文件,如下所示:

node <- data.frame(
object = c("2-1887", "2-1887", "2-1887", "2-1887", "2-1887", "2-1887", "2-1887", "4-1889", "4-1889", "4-1889", "4-1889", "4-1889", "4-1889", "4-1889"),
id = c(1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, 7),
function = c("f", "r", "r", "c", "s", "r", "k", "f", "r", "s", "r", "r", "r", "t"))

edge <- data.frame(
object = c("2-1887", "2-1887", "2-1887", "2-1887", "2-1887", "2-1887", "2-1887", "4-1889", "4-1889", "4-1889", "4-1889", "4-1889", "4-1889", "4-1889"),
from = c(1, 2, 3, 3, 4, 5, 6, 1, 2, 2, 3, 4, 5, 6),
to = c(2, 3, 4, 6, 6, 6, 7, 2, 3, 4, 4, 5, 6, 7))

meta <- data.frame(
object = c("2-1887", "4-1889"),
year = c(2000, 2022))

實際上這個數據集包含兩個不同的圖,按object分組。

有人可以建議如何使用tbl_graph ggraph/tidygraph中的 tbl_graph 生成按object (“2-1887”和“4-1889”)分組的兩個圖嗎? 如果我可以將這些 object 名稱保留在圖形屬性中,那就太好了。 我想我可以用purrrapply來做(歡迎使用任何方法),但我不知道用於進一步圖形分析的適當數據結構(列表?)。

我還需要將元信息(圖形屬性)添加到 object meta中的每個圖形。 目前我可以使用諸如graph$year <- 2000手動添加圖形屬性,但我需要使其自動化。

預先感謝您的支持。

edge %>%
  group_by(object) %>%
  summarise(graph = list(igraph::graph_from_data_frame(cur_data()))) %>%
  left_join(meta)

# A tibble: 2 x 3
  object graph     year
  <chr>  <list>   <dbl>
1 2-1887 <igraph>  2000
2 4-1889 <igraph>  2022

暫無
暫無

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

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