[R] matrix subset

Marc Schwartz MSchwartz at mn.rr.com
Sat Nov 12 20:46:03 CET 2005


On Sat, 2005-11-12 at 20:24 +0100, vincent at 7d4.com wrote:
> Dear R-helpers,
> 
> I apologize for this certainly simple question.
> I have the following R lines :
> 
>  > m  = matrix(1:12 , 3 , 4);
>  > m
>       [,1] [,2] [,3] [,4]
> [1,]    1    4    7   10
> [2,]    2    5    8   11
> [3,]    3    6    9   12
> 
>  > m1 = subset(m , m[,2]>=5);
>  > m1
> [1]  2  3  5  6  8  9 11 12
> 
> but in fact I would appreciate m1 to be also a matrix,
> and thus would like to get :
> 
>  > m1
>       [,1] [,2] [,3] [,4]
> [2,]    2    5    8   11
> [3,]    3    6    9   12
> 
> ... but I don't find how to do ?
> (probably it is very simple ! double shame.).
> Thanks for any hint or pointer.
> Vincent


What version of R are you using?  You did not indicate this in your post
as you are asked to do in the posting guide.

In R version 2.1.0, a matrix method was added to the subset() function,
so I am guessing that you are several versions out of date. Please
upgrade to the latest version, which is 2.2.0, where you will get:

> subset(m, m[, 2] >= 5)
     [,1] [,2] [,3] [,4]
[1,]    2    5    8   11
[2,]    3    6    9   12


Also, you do not need the semi-colons at the end of each line. They are
only generally used if you wish to place more than one R statement on a
single line.

HTH,

Marc Schwartz




More information about the R-help mailing list