繁体   English   中英

如何将带有虚拟变量的数据帧转换为邻接矩阵?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM