如何将这种数据框转换为矩阵?

时间:2019-11-08 19:38:40

标签: r matrix

我在R中有一个数据框,如下所示:

ids | A | B | C
id1 | 1 | 1 | 0
id2 | 0 | 1 | 1
id3 | 1 | 1 | 1

ABC是二项式列。例如,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。

我找不到合适的方法。有什么建议吗?

1 个答案:

答案 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