构造邻接矩阵

时间:2017-04-01 14:15:25

标签: r adjacency-matrix

我们想要构造一个邻接矩阵(如果A_Number调用B_Number,则值为1,否则为0)。 Weight =两个号码被调用的次数。

输入:

B = matrix(c(1,4,1, 2,4,1, 3,2,1, 4,5,1, 5,2,1),
           nrow = 5,
           ncol = 3,
           byrow = TRUE)

colnames(B) <- c("A_NUMBER", "B_NUMBER", "Weight")

#      A_NUMBER B_NUMBER Weight
# [1,]        1        4      1
# [2,]        2        4      1
# [3,]        3        2      1
# [4,]        4        5      1
# [5,]        5        2      1

通缉输出:

enter image description here

我们尝试了以下代码:

p<-as.matrix(dcast(SNA_data, A_NUMBER~B_NUMBER, value.var="W", fill=0))

但是这并没有给出邻接矩阵,因为行的名称与列的名称不同。 有人知道如何制作一个合适的邻接矩阵吗?

1 个答案:

答案 0 :(得分:1)

xtabs(Weight ~ A_NUMBER + B_NUMBER,B)会这样做。如果您还想要零行/列,只需在矩阵中添加一些虚拟行(权重= 0),覆盖A_NUMBER和B_NUMBER可能采用的所有值。