[英]How to create a binary matrix from single vector in R?
我有一个形式的向量:
myVec <- c("A", "A", "A", "B", "B", "C", "A")
我想要创建的是一个关系矩阵,其中 myVec 作为矩阵的列和行,当列和行值相等时,其中有 1。
从上面的示例向量得到的矩阵将是:
A A A B B C C A
A 1 1 1 0 0 0 0 1
A 1 1 1 0 0 0 0 1
A 1 1 1 0 0 0 0 1
B 0 0 0 1 1 0 0 0
B 0 0 0 1 1 0 0 0
C 0 0 0 0 0 1 1 0
C 0 0 0 0 0 1 1 0
A 1 1 1 0 0 0 0 1
如果行名和列名以 (A1, A2, A3, B1, ...) 或其他“唯一”配置出现,那很好。
我确信必须有一个简单的解决方案来解决这个问题,但它让我望而却步。 我怎样才能做到这一点? 谢谢!
尝试这个
> +outer(myVec, myVec, `==`)
[,1] [,2] [,3] [,4] [,5] [,6] [,7]
[1,] 1 1 1 0 0 0 1
[2,] 1 1 1 0 0 0 1
[3,] 1 1 1 0 0 0 1
[4,] 0 0 0 1 1 0 0
[5,] 0 0 0 1 1 0 0
[6,] 0 0 0 0 0 1 0
[7,] 1 1 1 0 0 0 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.