r语言 - 给定邻接矩阵和包含边缘列表的矩阵,如何正确将 1 编码为邻接矩阵而不会出错?


A =
4 5 8 10
4  0 0 0  0
5  0 0 0  0
8  0 0 0  0
10 0 0 0  0

其中4、5、8、10是的列和行名称

edge =
[,1] [,2]
[1,]    4   10
[2,]    5    8
[3,]    5   10

编码后,A应该看起来像

A = 
4 5 8 10
4  1 0 0  1
5  0 1 1  1
8  0 1 1  0
10 1 1 0  1

我试过A[edge]=1,但没有下标。

我试过A[edge]=1,但没有下标。

只需将数字矩阵转换为字符:

A[array(as.character(edge), dim(edge))] <- 1
A <- A + t(A)
diag(A) <- 1
A
4 5 8 10
4  1 0 0  1
5  0 1 1  1
8  0 1 1  0
10 1 1 0  1

最新更新