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