【发布时间】:2020-10-25 02:16:34
【问题描述】:
在 R 中,我有一个长度为 N 的离散值向量:
A <- c(1,1,2,2,2,3,3,3,4,4)
我想生成一个NxN 布尔值矩阵,指示共享一个值的向量位置。示例结果:
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[2,] TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[3,] FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
[4,] FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
[5,] FALSE FALSE TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE
[6,] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE
[7,] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE
[8,] FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE FALSE FALSE
[9,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
[10,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
(我希望将此矩阵用作掩码)。我可以使用sapply 实现这个结果:
sapply(A, function(b) b == A)
但我想知道是否有更直接的方法不涉及循环或apply 函数。
【问题讨论】: