2013-01-10 68 views
0

我有一个矩阵,并想看看是否条目超过一定值时,例如:真/假条件

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

现在,这将返回是大于value

所有值

我想要做的,而不是这个只是得到TRUE/FALSE为了能够在if条件使用它。

因此,我想检查矩阵中的任何值是否为TRUE上述条件。

+0

尝试'矩阵> value' – Andrie

+0

是但我只想以检查第一列 – user1723765

+3

尝试'矩阵[1]>值' – Andrie

回答

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而不是真/假您可以使用:

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