我在R中有一个数据框,如下所示:
ids | A | B | C
id1 | 1 | 1 | 0
id2 | 0 | 1 | 1
id3 | 1 | 1 | 1
A
,B
,C
是二项式列。例如,id1包含A和B,但不包含C
我想将其转换为如下所示的矩阵:
A | B | C
A | 2 | 2 | 1
B | 2 | 3 | 2
C | 1 | 2 | 2
A-B或B-A = 2表示存在两个包含A和B的ID。
我找不到合适的方法。有什么建议吗?
答案 0 :(得分:1)
您可以使用矩阵乘法来创建出现矩阵。
A = matrix(c(1, 1, 0,
0, 1, 1,
1, 1, 1), nrow = 3, byrow = T)
t(A)%*%A
[,1] [,2] [,3]
[1,] 2 2 1
[2,] 2 3 2
[3,] 1 2 2