John wrote:

Hello R-users,

I have a symmetric matrix of numerical values and I
want to obtain those values in the upper or lower
triangle of the matrix in a vector. I tried to do the
job by using two for-loops but it doens't seem to be a
clever way, and I'd like to know a more efficient code
for a large matrix of thousands of rows and columns.
Below is my code for your reference.


See ?upper.tri


Uwe Ligges



Thanks a lot.

John

####################

# mtx.sym is a symmetric matrix


my.ftn <- function(size_mtx, mtx) {

+ my.vector <- c() + for ( i in 1:size_mtx ) { + cat(".") + for ( j in 1:size_mtx ) { + if ( upper.tri(mtx)[i,j] ) { + my.vector <- c(my.vector, mtx[i,j]) + }}} + cat("\n") + }

# if I have a matrix, mtx.sym, of 100x100

my.ftn(100, mtx.sym)


______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

______________________________________________ [EMAIL PROTECTED] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to