0

マトリックスがあり、エントリが特定の値よりも大きいかどうかを確認したいと思います。例:

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

これで、より大きいすべての値が返されますvalue

これの代わりに私がやりたいのはTRUE/FALSE、if条件で使用できるようにするためだけです。

TRUEそこで、マトリックス内の値が上記の条件に当てはまるかどうかを確認したいと思います。

4

1 に答える 1

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

class(b)は以下を返します:

[1] "matrix"

TRUE / FALSEの代わりに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
于 2013-01-10T17:00:17.210 に答える