On Tue, May 7, 2013 at 4:53 AM, peter dalgaard <pda...@gmail.com> wrote:

>
> On May 7, 2013, at 06:39 , Mark Coletti wrote:
>
> > I have a matrix of data that has a corresponding vector of indices.  I
> > would like to use those indices to extract specific matrix elements into
> a
> > new vector.  In other words, I have an R X C matrix with a corresponding
> > vector of C elements that have numbers mapping into specific elements of
> > the matrix.  I'd like to generate a new vector C long that contains those
> > elements.
>
> As Berend says, you're not specifying the problem very clearly. Are you
> looking for something like this (indexing with a matrix)?
>
> > M <- matrix(round(rnorm(20,20,10)),4,5)
> > M
>      [,1] [,2] [,3] [,4] [,5]
> [1,]   29   19   18   13    0
> [2,]   24   24   11   25   10
> [3,]   20    9   12   11   24
> [4,]   28    3   16   17   32
> > Ix <- sample(1:4,5,replace=TRUE)
> > Ix
> [1] 3 2 2 4 3
> > M[cbind(Ix,1:5)]
> [1] 20 24 11 17 24


I apologize for not being clearer with my question.  Regardless, you were
able to suss out what I wanted -- using a vector of y coordinates to pull
individual elements out by column from a matrix.  Your use of cbind() to
effect this works.

And using cbind() to extract matrix elements in that way is very
non-intuitive.  There is no way I would have thought of that on my own.
 Thanks!

        [[alternative HTML version deleted]]

______________________________________________
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