繁体   English   中英

如何从 R 中的单个向量创建二进制矩阵?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM