0

我有一个矩阵,想看看条目是否大于某个值,例如:

matrix[matrix[,1] > value,1] 

现在这将返回所有大于value

我想做的只是 getTRUE/FALSE以便能够在 if 条件下使用它。

所以我想检查矩阵中的任何值是否TRUE适用于上述条件。

4

1 回答 1

3
set.seed(1234)

a <- matrix(round(runif(25,0,4)), nrow=5)
a

b <- (a>2)
b

class(b)    

一个是:

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    3    3    3    1
[2,]    2    0    2    1    1
[3,]    2    1    1    1    1
[4,]    2    3    4    1    0
[5,]    3    2    1    1    1

b 是:

      [,1]  [,2]  [,3]  [,4]  [,5]
[1,] FALSE  TRUE  TRUE  TRUE FALSE
[2,] FALSE FALSE FALSE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE FALSE
[4,] FALSE  TRUE  TRUE FALSE FALSE
[5,]  TRUE FALSE FALSE FALSE FALSE

类(b)返回:

[1] "matrix"

如果你想要一个 1 / 0 而不是 TRUE / FALSE 的数字矩阵,你可以使用:

b[b==TRUE] = 1
b

     [,1] [,2] [,3] [,4] [,5]
[1,]    0    1    1    1    0
[2,]    0    0    0    0    0
[3,]    0    0    0    0    0
[4,]    0    1    1    0    0
[5,]    1    0    0    0    0

此代码将仅检查第一列:

b2 <- a[,1] > 2
b2

[1] FALSE FALSE FALSE FALSE  TRUE
于 2013-01-10T17:00:17.210 回答