如何检查矩阵值是否与 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

要检查上面创建的数据框中 M1 的每一行中是否存在 V1 中的值,请将以下代码添加到上面的代码段中 -

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

要检查上面创建的数据框中 M2 的每一行中是否存在 V2 中的值,请将以下代码添加到上面的代码段中 -

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