[R] How to index a matrix with different row-number for each column?

Zhenjiang Lan lan.zhenjiang at gmail.com
Tue Jun 12 17:36:07 CEST 2012


Thank you very much! that's exactly what I want.

On Tue, Jun 12, 2012 at 10:32 AM, R. Michael Weylandt
<michael.weylandt at gmail.com> wrote:
> I think you are looking for
>
> mt[cbind(vt, seq_along(vt))]
>
> which uses some trickines known as matrix indexing (basically, the two
> columns created by cbind() are considered row & col indices -- then
> seq_along() gives the col1,col2, bit as needed.
>
> HTH,
>
> Michael
>
> On Tue, Jun 12, 2012 at 10:28 AM, Zhenjiang Lan <lan.zhenjiang at gmail.com> wrote:
>> here's my question: suppose I have a matrix:
>>
>>    mt<-matrix(1:12,ncol=6)
>>
>> now I have a vector
>>
>>    vt<-c(1,2,2,2,1,2)
>>
>> which means I want to get:
>> the 1st row for column1;
>> the 2nd row for column2;
>> the 2nd row for column3;
>> the 2nd row for column4;
>> ...
>>
>> that what I want is this vector:
>> 1,4,6,8,9,12
>>
>> Does anyone know how to do this fast?
>> I know I can use for-loop to travel all columns,but that's not what I want.
>>
>> ______________________________________________
>> 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