Skip to content

matrix subsetting

3 messages · Sam Steingold, michael.weylandt at gmail.com (R. Michael Weylandt, Duncan Murdoch

#
if I have a vector, I can find the indexes which satisfy a condition:
x <- rnorm(10)
 [1]  0.4751132 -0.5442322 -0.1979854 -0.2455521  0.8349336 -0.4283345
 [7]  0.6108130  2.0576160  1.1251716 -1.3933637
x[x>0]
[1] 0.4751132 0.8349336 0.6108130 2.0576160 1.1251716
(1:10)[x>0]
[1] 1 5 7 8 9

how about a matrix?

       00000G      00000Q      00002O       000035       000037       00003A
00000G     NA 0.008226002 0.005631718 0.0002625585 0.0010673235 0.0045310915
00000Q     NA          NA 0.003714951 0.0002007877 0.0016983426 0.0011083925
00002O     NA          NA          NA 0.0024233691 0.0069849678 0.0024510792
000035     NA          NA          NA           NA 0.0006499707 0.0008420414
000037     NA          NA          NA           NA           NA 0.0005448872
00003A     NA          NA          NA           NA           NA           NA
00003B     NA          NA          NA           NA           NA           NA
00003G     NA          NA          NA           NA           NA           NA
00003H     NA          NA          NA           NA           NA           NA
00003I     NA          NA          NA           NA           NA           NA
             00003B       00003G       00003H      00003I
00000G 0.0007254316 0.0093954826 3.420231e-04 0.003974556
00000Q 0.0013883606 0.0019778247 3.609791e-05 0.001552725
00002O 0.0027340806 0.0082790646 2.561862e-03 0.012297821
000035 0.0006025767 0.0004534397 1.053946e-03 0.001681780
000037 0.0005501974 0.0021137871 1.733880e-03 0.003712675
00003A 0.0008969849 0.0043855527 2.786194e-06 0.002492954
00003B           NA 0.0019791290 8.301787e-04 0.002816774
00003G           NA           NA 3.181892e-07 0.010608717
00003H           NA           NA           NA 0.001066141
00003I           NA           NA           NA          NA

how do I find the cells whose values are, e.g., > 0.01 ??

thanks!
which(x>0)

or 

which(x>0, arr.ind=TRUE)

depending on your application. 

Michael
On Feb 13, 2012, at 5:38 PM, Sam Steingold <sds at gnu.org> wrote:

            
#
On 12-02-13 5:46 PM, R. Michael Weylandt <michael.weylandt at gmail.com> wrote:
Or even x>0 if you want a matrix of TRUE/FALSE values.  You can use 
x[x>0] to get the values, but they won't be in matrix form.

Duncan Murdoch