使用 igraph 在 R 中创建规则图或邻接矩阵?

Creating a regular graph or adjacency matrix in R, with igraph?

我目前正在尝试(理想情况下)使用 igraph 生成规则的邻接矩阵。我希望每个单位都和k个人做邻居

对于k = 2,我希望得到:

library(igraph)
as_adj(make_graph(c(1, 2, 1, 10, 2, 3, 3, 4, 4, 5 ,5,6, 6,7, 7,8, 8,9, 9, 10), directed = FALSE))

      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
 [1,]    0    1    0    0    0    0    0    0    0     1
 [2,]    1    0    1    0    0    0    0    0    0     0
 [3,]    0    1    0    1    0    0    0    0    0     0
 [4,]    0    0    1    0    1    0    0    0    0     0
 [5,]    0    0    0    1    0    1    0    0    0     0
 [6,]    0    0    0    0    1    0    1    0    0     0
 [7,]    0    0    0    0    0    1    0    1    0     0
 [8,]    0    0    0    0    0    0    1    0    1     0
 [9,]    0    0    0    0    0    0    0    1    0     1
[10,]    1    0    0    0    0    0    0    0    1     0

有没有一种方法可以使用 igraph 中的现有函数来创建如上图那样的图形,但用于通用 k?谢谢

你可以用 sample_degseq:

“创建具有给定顶点度数的图通常很有用。这正是 sample_degseq 确实。"

k=3 # degree for each node
n=10 # number of nodes
g = sample_degseq(rep(k,n),method = "simple.no.multiple")

邻接:

as_adj(g)

[1,] . . 1 . 1
[2,] . . 1 1 .
[3,] 1 1 . . .
[4,] . 1 . . 1
[5,] 1 . . 1 .

剧情:

plot(g)