2013-01-10 106 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