[R] [Q] extracting lower diagonal elements of a matrix

Philippe Grosjean phgrosjean at sciviews.org
Fri Jan 27 10:44:11 CET 2006


Try:
 > data[lower.tri(data)]

(the same as data[col(data) < row(data)], but using the dedicated function).
Best,

Philippe Grosjean

Christos Hatzis wrote:
> Try
> 
> s <- matrix(rnorm(36,0,1),nrow=6)
> s[col(s)<row(s)]
> 
> Courtesy of V&R.
> 
> -Christos 
> 
> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Taka Matzmoto
> Sent: Friday, January 27, 2006 1:13 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] [Q] extracting lower diagonal elements of a matrix
> 
> Hi R users
> 
> I like to extract lower diagonal elements of a matrix in such a way like,
> data[1,2], data[1,3], ...., data[5,6] are extracted from a matrix called
> 'data'
> 
> This short script below is what I have written so far.
> 
> ##########################################
> data <- matrix(rnorm(36,0,1),nrow=6)
> temp<-c()
> for (i in 1:(nrow(data)-1))
> {
>     for (j in (i+1):nrow(data))
>     {
>         temp<-append(temp,data[j,i])
>     }
> }
> ##########################################
> 
> Is there any function for this?  or is there any elegant way to do this
> task?
> 
> Thanks in advance.
> 
> TM
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
> 
>




More information about the R-help mailing list