[R] Non-procedural access to columns of a matrix

Joris Meys jorismeys at gmail.com
Sat Jun 19 02:07:44 CEST 2010


> diag(x[,x[,4]])
[1] 11 23 32

> diag(x[,x[,4]]) <- diag(x[,x[,4]])+5
> x
     [,1] [,2] [,3] [,4]
[1,]   16   12   13    1
[2,]   21   22   28    3
[3,]   31   37   33    2

Cheers
Joris

On Fri, Jun 18, 2010 at 8:58 PM, Iuri Gavronski <iuri at ufrgs.br> wrote:
> Hi,
>
> I would like to have an index for a column in a matrix encoded in a
> cell of the same matrix.
> For example:
> x = matrix(c(11,12,13,1,
> 21,22,23,3,
> 31,32,33,2),byrow=T,ncol=4)
>
> In this case, column 4 is the index. I then access the column
> specified in the index by:
>> for (i in 1:3) print(x[i,x[i,4]])
> [1] 11
> [1] 23
> [1] 32
>>
>> for (i in 1:3) {x[i,x[i,4]] <- x[i,x[i,4]] + 5}
>> x
>     [,1] [,2] [,3] [,4]
> [1,]   16   12   13    1
> [2,]   21   22   28    3
> [3,]   31   37   33    2
>>
>
> Is there a way to get the same results without looping?
>
> Best,
>
> Iuri.
>
> ______________________________________________
> 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.
>



-- 
Joris Meys
Statistical consultant

Ghent University
Faculty of Bioscience Engineering
Department of Applied mathematics, biometrics and process control

tel : +32 9 264 59 87
Joris.Meys at Ugent.be
-------------------------------
Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php



More information about the R-help mailing list