如何在 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 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.