Hi Jon, That only controls the print display of the matrix, not how one can access the elements. I think my solution revolves around indexing in as.matrix() with a mind to the fact that results will be duplicated along the diagonal.
Cheers, and thanks all, Mike On Tue, Jul 15, 2008 at 11:43 AM, Jon Olav Skoien <[EMAIL PROTECTED]> wrote: > Maybe > > dmat<-dist(dat, method="euclidean",upper = TRUE,diag = TRUE) > > can fix your problem with the triangular matrix? > > Cheers > Jon > > Michael Rennie wrote: >> >> Not really, >> >> I'd actually want >> >> f[4:6,4:6] >> >> to get comparisons of observations 4 to 6 only. And I'm still left >> with the upper triangular matrix. This is a problem since I want to >> sum the distances over the blocks that I am extracting. >> >> Then again, I could just divide the sum by two and get the answer.... >> >> And, if I want to sum blocks comparing distances among two groups, say >> >> f[7:10,4:6] >> >> then I'm in the triangluar matrix and not crossing the diagonal >> anymore, so I should be okay. >> >> I think I may have my answer, but any other tips are more than welcome. >> >> Cheers, >> >> Mike >> >> On Tue, Jul 15, 2008 at 9:35 AM, stephen sefick <[EMAIL PROTECTED]> wrote: >> >>> >>> how about this >>> f <- as.matrix(dmat) >>> f[,4:6] >>> #you get repeats but I think this is what you want >>> >>> On Tue, Jul 15, 2008 at 9:07 AM, Michael Rennie <[EMAIL PROTECTED]> >>> wrote: >>> >>>> >>>> Hi all, >>>> >>>> Does anyone have any tips for extracting chunks of data from a distance >>>> matrix? >>>> >>>> For instance, if one was interested in only a subset of distance >>>> comparisons (i.e., that of rows 4 thru 6, and no others), is there a >>>> simple way to pull that data out? >>>> >>>> >From some playing around with an example (below), I've been able to >>>> figure out that a distance matrix in R is stored as a single vector, >>>> running top to bottom and left to right, so if you know the size of >>>> your distance matrix, you can figure out which elements to query and >>>> stick them together using c(). >>>> >>>> However, all this stuff is still indexed by the "labels" attribute. >>>> Does anyone know of a way to use that to pull out subsets from the >>>> distance matrix in a simpler manner than my example code below? >>>> >>>> ############## >>>> # ex_dist.R >>>> # example for >>>> # manipulating >>>> # distance matrices >>>> #################### >>>> >>>> set.seed<-12345 >>>> >>>> a<-sample(20:40, 10) >>>> b<-sample(80:100, 10) >>>> c<-sample(0:40, 10) >>>> >>>> dat<-data.frame(a,b,c) >>>> dat >>>> >>>> dmat<-dist(dat, method="euclidean") >>>> dmat >>>> >>>> dmat[1:6] #vector that stores the distance matrix runs descending down >>>> columns, left to right >>>> >>>> #in a 10-element distance matrix, column lengths are 9,8,7,6....1 >>>> >>>> #get comparisons of rows 1:4 (from dat) ONLY >>>> #top-left matrix will consist of top 3 of first column, top 2 of >>>> second col, top 1 or third col. >>>> >>>> topleft<-c(dmat[1:3],dmat[10:11],dmat[18]) >>>> topleft >>>> >>>> #get comparisons of rows 9:10 (from dat) ONLY >>>> #bottom right 4 >>>> >>>> bottomright<-c(dmat[8:9],dmat[16:17]) >>>> bottomright >>>> >>>> #######end##### >>>> >>>> I'm sure there's a simpler way to do this using the labels of the >>>> distance matrix, but I can't see it. I've thought of converting it >>>> using as.matrix(), which would allow me to pull out particular rows, >>>> but I'm only interested in the triangluar matrix. Now, if there was a >>>> way to as.matrix(dmat) such that I got the bottom triangular matrix >>>> and zeros elsewhere, then I'd be in buisness. Any suggestions on how >>>> to pull that off would be helpful. >>>> >>>> I'm certainly interested in any tips or tricks anyone might have for >>>> working with distance matrices, or any material that people can point >>>> me towards. >>>> >>>> Cheers, >>>> >>>> Mike >>>> >>>> -- >>>> Michael D. Rennie >>>> Ph.D. Candidate >>>> University of Toronto at Mississauga >>>> 3359 Missisagua Rd. N. >>>> Mississauga, ON L5L 1C6 >>>> Ph: 905-828-5452 Fax: 905-828-3792 >>>> www.utm.utoronto.ca/~w3rennie >>>> >>>> ______________________________________________ >>>> 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 >>>> and provide commented, minimal, self-contained, reproducible code. >>>> >>> >>> -- >>> Let's not spend our time and resources thinking about things that are so >>> little or so large that all they really do for us is puff us up and make >>> us >>> feel like gods. We are mammals, and have not exhausted the annoying >>> little >>> problems of being mammals. >>> >>> -K. Mullis >>> >> >> >> >> > -- -- Michael D. Rennie Ph.D. Candidate University of Toronto at Mississauga 3359 Missisagua Rd. N. Mississauga, ON L5L 1C6 Ph: 905-828-5452 Fax: 905-828-3792 www.utm.utoronto.ca/~w3rennie ______________________________________________ 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 and provide commented, minimal, self-contained, reproducible code.