簡體   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