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.