我有一个矩阵,想看看条目是否大于某个值,例如:
matrix[matrix[,1] > value,1]
现在,这将返回所有大于value
的值
我想做的不是这样,而是获取TRUE/FALSE
以便能够在if条件下使用它。
因此,我想检查矩阵中是否有任何值在上述条件下为TRUE
。
发布于 2013-01-10 17:00:17
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
https://stackoverflow.com/questions/14263087
复制相似问题