如何在 R 中检查矩阵值与向量值的相等性?


如果我们有一个名为 V 的向量,其中包含五个值,以及一个名为 M 的矩阵,其中包含五列,并且我们想要检查向量中的第一个值是否出现在矩阵中每一行的第一列中,依此类推,对于向量中的每个值,那么我们可以使用以下命令:

t(t(M)==V)

示例 1

考虑以下矩阵和向量:

M1<-matrix(rpois(40,1),ncol=2)
M1

创建以下数据框

   [,1] [,2]
[1,]  2  0
[2,]  0  2
[3,]  1  1
[4,]  0  3
[5,]  2  1
[6,]  2  1
[7,]  2  0
[8,]  0  4
[9,]  0  3
[10,] 1  3
[11,] 0  1
[12,] 4  1
[13,] 1  2
[14,] 1  1
[15,] 2  3
[16,] 3  1
[17,] 3  1
[18,] 0  2
[19,] 0  2
[20,] 0  0

为了检查 V1 中的值是否出现在上面创建的数据框中 M1 的每一行中,请将以下代码添加到上述代码段中:

M1<-matrix(rpois(40,1),ncol=2)
V1<-c(0,2)
t(t(M1)==V1)

输出

如果您将以上所有给定的代码段作为单个程序执行,它将生成以下输出:

       [,1]   [,2]
[1,]  FALSE  FALSE
[2,]   TRUE   TRUE
[3,]  FALSE  FALSE
[4,]   TRUE  FALSE
[5,]  FALSE  FALSE
[6,]  FALSE  FALSE
[7,]  FALSE  FALSE
[8,]   TRUE  FALSE
[9,]   TRUE  FALSE
[10,] FALSE  FALSE
[11,]  TRUE  FALSE
[12,] FALSE  FALSE
[13,] FALSE   TRUE
[14,] FALSE  FALSE
[15,] FALSE  FALSE
[16,] FALSE  FALSE
[17,] FALSE  FALSE
[18,]  TRUE   TRUE
[19,]  TRUE   TRUE
[20,] TRUE   FALSE

示例 2

考虑以下矩阵和向量:

M2<-matrix(round(rnorm(40),1),ncol=2)
M2

创建以下数据框

     [,1]  [,2]
[1,]   1.6 -0.8
[2,]   0.7 -0.7
[3,]   0.1 -1.1
[4,]   0.1  1.5
[5,]   0.9  0.3
[6,]   1.3  1.2
[7,]   0.7 -0.3
[8,]  -0.8 -0.1
[9,]  -0.5 -1.4
[10,] -0.3  1.0
[11,]  0.6 -1.3
[12,] -0.4  0.8
[13,]  0.0  0.8
[14,]  1.5  0.5
[15,] -0.3 -0.8
[16,]  1.0 -0.5
[17,]  1.9 -1.3
[18,]  1.7 -0.7
[19,]  2.7  0.4
[20,]  0.9 -0.5

为了检查 V2 中的值是否出现在上面创建的数据框中 M2 的每一行中,请将以下代码添加到上述代码段中:

M2<-matrix(round(rnorm(40),1),ncol=2)
V2<-c(0.1,0.5)
t(t(M2)==V2)

输出

如果您将以上所有给定的代码段作为单个程序执行,它将生成以下输出:

       [,1]   [,2]
[1,]  FALSE  FALSE
[2,]  FALSE  FALSE
[3,]  TRUE   FALSE
[4,]  TRUE   FALSE
[5,]  FALSE  FALSE
[6,]  FALSE  FALSE
[7,]  FALSE  FALSE
[8,]  FALSE  FALSE
[9,]  FALSE  FALSE
[10,] FALSE  FALSE
[11,] FALSE  FALSE
[12,] FALSE  FALSE
[13,] FALSE  FALSE
[14,] FALSE   TRUE
[15,] FALSE  FALSE
[16,] FALSE  FALSE
[17,] FALSE  FALSE
[18,] FALSE  FALSE
[19,] FALSE  FALSE
[20,] FALSE  FALSE

更新于: 2021-11-01

158 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告