[R] Matrix Indexing

From: Rory Winston <rory.winston_at_gmail.com>
Date: Sat, 12 Apr 2008 10:56:31 +0100


Does anyone know how I might pick out diagonal elements of a matrix using a vector?

If I create a matrix a:

a <- matrix(c(1:16), 4, byrow=TRUE)

and I want to pick out the elements (1,1),(2,2),(3,3), or another arbitrary diagonal (upper or lower), is there any way I can use a vector to do this? So if I want a diagonal of size 3, I could create a vector like x <- c(0:2) and then pick out a[1+x,1+x]? Currently, using a vector in this way gives me a sub-matrix, as I get the cartesian product of the indexes (which is to be expected, as I guess I am misusing the vector notion here).

Anyone know how to do this?


        [[alternative HTML version deleted]]

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. Received on Sat 12 Apr 2008 - 10:37:48 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sat 12 Apr 2008 - 11:30:28 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive