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