Enlightening. Thanks. Joh
Gabor Grothendieck wrote: > If you want indexes, i.e. 1, 2, 3, ... instead of the values in v you > can still use split -- just split on seq_along(v) instead of v (or if > v had names you might want to split along names(v)): > > split(seq_along(v), ct) > > and if you only want to retain groups with 2+ elements then > you can just Filter then out: > > twoplus <- function(x) length(x) >= 2 > Filter(twoplus, split(seq_along(v), ct)) > > On Dec 22, 2007 5:12 AM, Johannes Graumann <[EMAIL PROTECTED]> > wrote: >> But cutree does away with the indexes from the original input, which >> rect.hclust retains. >> I will have no other choice and match that input with the 'values' >> contained in the clusters ... >> >> Joh >> >> >> Gabor Grothendieck wrote: >> >> > If we don't need any plotting we don't really need rect.hclust at >> > all. Split the output of cutree, instead. Continuing from the >> > prior code: >> > >> >> for(el in split(unname(vv), names(vv))) print(el) >> > [1] 0.00 0.45 >> > [1] 1 >> > [1] 2 >> > [1] 3.00 3.25 3.33 3.75 4.10 >> > [1] 5 >> > [1] 6.00 6.45 >> > [1] 7.0 7.1 >> > [1] 8 >> > >> > On Dec 21, 2007 3:24 PM, Johannes Graumann <[EMAIL PROTECTED]> >> > wrote: >> >> Hm, hm, rect.hclust doesn't accept "plot=FALSE" and cutree doesn't >> >> retain the indexes of membership ... anyway short of ripping out the >> >> guts of rect.hclust to achieve the same result without an active >> >> graphics device? >> >> >> >> Joh >> >> >> >> >> >> >> # cluster and plot >> >> >> hc <- hclust(dist(v), method = "single") >> >> >> plot(hc, lab = v) >> >> >> cl <- rect.hclust(hc, h = .5, border = "red") >> >> >> >> >> >> # each component of list cl is one cluster. Print them out. >> >> >> for(idx in cl) print(unname(v[idx])) >> >> > [1] 8 >> >> > [1] 7.0 7.1 >> >> > [1] 6.00 6.45 >> >> > [1] 5 >> >> > [1] 3.00 3.25 3.33 3.75 4.10 >> >> > [1] 2 >> >> > [1] 1 >> >> > [1] 0.00 0.45 >> >> > >> >> >> # a different representation of the clusters >> >> >> vv <- v >> >> >> names(vv) <- ct <- cutree(hc, h = .5) >> >> >> vv >> >> > 1 1 2 3 4 4 4 4 4 5 6 6 7 >> >> > 7 >> >> > 8 >> >> > 0.00 0.45 1.00 2.00 3.00 3.25 3.33 3.75 4.10 5.00 6.00 6.45 7.00 >> >> > 7.10 8.00 >> >> > >> >> > >> >> > On Dec 21, 2007 4:56 AM, Johannes Graumann >> >> > <[EMAIL PROTECTED]> wrote: >> >> >> <posted & mailed> >> >> >> >> >> >> Dear all, >> >> >> >> >> >> I'm trying to solve the problem, of how to find clusters of values >> >> >> in a vector that are closer than a given value. Illustrated this >> >> >> might look as follows: >> >> >> >> >> >> vector <- c(0,0.45,1,2,3,3.25,3.33,3.75,4.1,5,6,6.45,7,7.1,8) >> >> >> >> >> >> When using '0.5' as the proximity requirement, the following groups >> >> >> would result: >> >> >> 0,0.45 >> >> >> 3,3.25,3.33,3.75,4.1 >> >> >> 6,6.45 >> >> >> 7,7.1 >> >> >> >> >> >> Jim Holtman proposed a very elegant solution in >> >> >> http://tolstoy.newcastle.edu.au/R/e2/help/07/07/21286.html, which I >> >> >> have modified and perused since he wrote it to me. The beauty of >> >> >> this approach is that it will not only work for constant proximity >> >> >> requirements as above, but also for overlap-windows defined in >> >> >> terms of ppm around each value. Now I have an additional need and >> >> >> have found no way (short of iteratively step through all the groups >> >> >> returned) to figure out how to do that with Jim's approach: how to >> >> >> figure out that 6,6.45 and 7,7.1 are separate clusters? >> >> >> >> >> >> Thanks for any hints, Joh >> >> >> >> > >> >> > ______________________________________________ >> > 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. >> >> ______________________________________________ >> 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. >> > > ______________________________________________ > 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. ______________________________________________ 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.