[R] Selecting rows/columns of a matrix

Rui Barradas ruipbarradas at sapo.pt
Sun Oct 26 19:45:35 CET 2014


Hello,

Try the following.

a[as.logical(j), as.logical(j)]

# or
b <- a[as.logical(j), ]
t(b)[as.logical(j), ]


Hope this helps,

Rui Barradas

Em 26-10-2014 18:35, Steven Yen escreveu:
> Dear
>
> I am interested in selecting rows and columns of a matrix with a
> criterion defined by a binary indicator vector. Let  matrix a be
>
>  > a<-matrix(1:16, 4,4,byrow=T)
>  > a
>       [,1] [,2] [,3] [,4]
> [1,]    1    2    3    4
> [2,]    5    6    7    8
> [3,]    9   10   11   12
> [4,]   13   14   15   16
>
> Elsewhere in Gauss, I select the first and third rows and columns of a
> by defining a column vector j = [1,0,1,0]. Then, select the rows of a
> using j, and then selecting the rows of the transpose of the resulting
> matrix using j again. I get the 2 x 2 matrix as desired. Is there a way
> to do this in R? below are my Gauss commands. Thank you.
>
> ---
>
> j
>
> 1
> 0
> 1
> 0
>
> a=selif(a,j); a
>
> 1  2  3  4
> 9 10 11 12
>
> a=selif(a',j); a
>
> 1  9
> 3 11
>
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list