矩阵中的真/假条件

时间:2013-01-10 16:52:00

标签: r

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

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

现在,这将返回大于value

的所有值

我想要做的只是获取TRUE/FALSE,以便能够在if条件下使用它。

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

1 个答案:

答案 0 :(得分:3)

set.seed(1234)

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

b <- (a>2)
b

class(b)    

a是:

     [,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