It looks like you might be asking for this.  This gets the "lower right"
diagonal.

> mat <- matrix(c(1,4,3,4,1,2,3,2,1), nrow = 3, ncol=3, byrow=TRUE)
> mat
     [,1] [,2] [,3]
[1,]    1    4    3
[2,]    4    1    2
[3,]    3    2    1
> diag(mat[rev(2:nrow(mat)),-1])
[1] 2 2
>
This gets the upper off-diagonal
> diag(mat[,-1])
[1] 4 2
Rich

You can accomplish much with subscripting.

Rich

On Thu, Jan 20, 2011 at 4:20 PM, Joe P King <jp@joepking.com> wrote:

> So many matrices are square symmetrical (i.e. variance-covariance
> matrices),
> is there any way to get R to split the matrix on its diagonal and just
> return one diagonal?
>
>
>
> So if I have
>
>
>
> mat<-matrix(c(1,4,3,4,1,2,3,2,1), nrow = 3, ncol=3, byrow=TRUE)
>
>
>
> is there anyway to get the lower right diagonal instead of the entire
> symmetric matrix?
>
>
>
> -------------------------------------------
>
> Joe King, M.A.
>
> Ph.D. Student
>
> University of Washington - Seattle
>
> 206-913-2912
>
>  <mailto:jp@joepking.com> jp@joepking.com
>
> -------------------------------------------
>
> Ad astra per aspera  - "Through hardships to the stars"
>
>
>
>
>        [[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<http://www.r-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]

