On Fri, 26 Sep 2014 10:15:14 PM Fix Ace wrote:
> Hello, there,
> I wonder if there is an easier way that I would only get the rows that
> satisfies some condition. For example:I have the following matrix, and I
> would like to output only the 3rd row and 4th row, since only these two
> rows contain the numbers greater than 11
> > a
> 
>      [,1] [,2] [,3] [,4] [,5]
> [1,]    1    5    9   13   17
> [2,]    2    6   10   14   18
> [3,]    3    7   11   15   19
> [4,]    4    8   12   16   20
> 
> > a>11
> 
>       [,1]  [,2]  [,3] [,4] [,5]
> [1,] FALSE FALSE FALSE TRUE TRUE
> [2,] FALSE FALSE FALSE TRUE TRUE
> [3,] FALSE FALSE FALSE TRUE TRUE
> [4,] FALSE FALSE  TRUE TRUE TRUE
> I have tried to use a[a>11, ] and it did not work.
> Thanks a lot for the help:)

Hi Fix Ace,
I have to admit that I am unfamiliar with the system of arithmetic that 
you are employing in the above example. In no system with which I am 
conversant are 13, 17, 14 and 18 less than or equal to 11. I can only 
offer the desperate conjecture that you want the third to fifth columns of 
the matrix rather than the third and fourth rows. If this wild surmise 
happens to be the case, I suggest that you try this:

testmat[,apply(testmat,2,function(x) return(max(x) > 11))]

Jim

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to