Создайте объект графа из списка смежных ребер - PullRequest
1 голос
/ 03 марта 2020

Я не уверен, является ли это тривиальным или глупым вопросом, но мне было интересно, возможно ли создать объект igraph, используя R (или любое другое программное обеспечение) и начиная с матрицы смежности ребер. Например, я хотел бы воссоздать следующий график:

, просто указав матрицу смежности ребер с помощью матрицы:

#>      [,1] [,2] [,3] [,4] [,5]
#> [1,]    0    1    0    0    0
#> [2,]    1    0    1    1    0
#> [3,]    0    1    0    1    0
#> [4,]    0    1    1    0    1
#> [5,]    0    0    0    1    0

или список:

my_list <- list(
  "1" = c(2), 
  "2" = c(1, 3, 4), 
  "3" = c(2, 4), 
  "4" = c(2, 3, 5), 
  "5" = c(4)
)
my_list
#> $`1`
#> [1] 2
#> 
#> $`2`
#> [1] 1 3 4
#> 
#> $`3`
#> [1] 2 4
#> 
#> $`4`
#> [1] 2 3 5
#> 
#> $`5`
#> [1] 4

Создан в 2020-03-03 пакетом представ. (v0.3.0)

. Я знаю, что функция igraph::graph_from_adj_list работает только с использованием матрицы смежности вершин, т.е.

# packages
library(igraph)

my_list <- list(
  "1" = c(2), 
  "2" = c(1, 3, 4), 
  "3" = c(2, 4), 
  "4" = c(2, 3, 5), 
  "5" = c(4)
)
my_list
#> $`1`
#> [1] 2
#> 
#> $`2`
#> [1] 1 3 4
#> 
#> $`3`
#> [1] 2 4
#> 
#> $`4`
#> [1] 2 3 5
#> 
#> $`5`
#> [1] 4

g <- graph_from_adj_list(my_list)
plot(g)

Создано в 2020-03-03 Представьте пакет (v0.3.0)

, что не то, что я хочу.

...