[英]How to convert dataframe with dummy variables into adjacency matrix?
我有一个包含多个虚拟变量的数据框。
df <- data.frame(A=c(1,0,1,0,1),B=c(1,1,1,0,0),C=c(0,1,0,1,1))
实际上,每行中的数字“1”代表变量的出现,因此数据框类似于共现数据框。
我希望将其转换为邻接矩阵。
,A,B,C
A,3,2,1
乙,2,3,1
C,1,1,3
我该怎么做?
我想这就是我的答案。
我想我错过了一些简单的方法来做到这一点,但可以使用基本 R outer
一个选项
cols <- names(df)
apply_fun <- function(x, y) sum(df[x] == 1 & df[y] == 1)
mat <- outer(cols,cols, Vectorize(apply_fun))
row.names(mat) <- cols
colnames(mat) <- cols
mat
# A B C
#A 3 2 1
#B 2 3 1
#C 1 1 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.