从数据帧R创建加权邻接矩阵

从数据帧R创建加权邻接矩阵,r,networking,adjacency-matrix,R,Networking,Adjacency Matrix,我有一个如下方式的数据框 dat <- data.frame(A=c("D", "A", "D", "B"), B=c("B", "B", "D", "R"), C=c("A", "D", "C", ""), D=c("D", &qu

我有一个如下方式的数据框

dat <- data.frame(A=c("D", "A", "D", "B"), B=c("B", "B", "D", "R"), C=c("A", "D", "C", ""), D=c("D", "C", "A", "A"))

在R中,哪种方法最有效?

您可以尝试下面的代码

> t(sapply(dat, function(x) table(factor(x, levels = names(dat)))))
  A B C D
A 1 1 0 2
B 0 2 0 1
C 1 0 1 1
D 2 0 1 1


您可以尝试下面的代码

> t(sapply(dat, function(x) table(factor(x, levels = names(dat)))))
  A B C D
A 1 1 0 2
B 0 2 0 1
C 1 0 1 1
D 2 0 1 1


另一个选项是使用
table

 table(subset(stack(dat), nzchar(values) & values != 'R'))

另一个选项是使用
table

 table(subset(stack(dat), nzchar(values) & values != 'R'))
 table(subset(stack(dat), nzchar(values) & values != 'R'))