如何在 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
广告