我有一个矩阵,想看看条目是否大于某个值,例如:
matrix[matrix[,1] > value,1]
现在,这将返回大于value
我想要做的只是获取TRUE/FALSE
,以便能够在if条件下使用它。
所以我想检查上述条件中矩阵中的任何值是否为TRUE
。
答案 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