[英]R create adjacency matrix according to columns from data.frame
我有10個視頻的data.frame
,每列都是一個標記,指示視頻的類別。 例如,數據將如下所示:
data <- data.frame(id=paste0("r", 1:10), A=sample(0:1,10,TRUE), B=sample(0:1,10,TRUE), C=sample(0:1,10,TRUE))
data
id A B C
1 r1 1 0 1
2 r2 0 0 0
3 r3 0 1 0
4 r4 1 1 0
5 r5 0 0 0
6 r6 1 0 1
7 r7 1 0 1
8 r8 0 1 1
9 r9 0 0 1
10 r10 1 0 0
現在我想基於標簽形成一個鄰接矩陣,其值應該是具有相同標簽的視頻數量。 例如,單元AC
應為3,因為r1
, r6
和r7
具有相同的標簽。 最后,我想要一個如下輸出矩陣:
A B C
A 5 1 3
B 1 3 1
C 3 1 5
我怎樣才能匯總數據?
矩陣乘法應該在這里工作
set.seed(1)
dat <- data.frame(id=paste0("r", 1:10), A=sample(0:1,10,TRUE), B=sample(0:1,10,TRUE), C=sample(0:1,10,TRUE))
mat <- as.matrix(dat[-1])
t(mat) %*% mat
編輯
或者在單行中(感謝@AnandaMahto)
crossprod(as.matrix(dat[-1]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.