[R] dendrogram: how to obtain leaf height

Diaz.Ramon rdiaz at cnio.es
Mon Dec 12 21:15:06 CET 2005


Dear All,

How can the height of a leaf be extracted from a dendrogram? 

Sure, I can print it, but I am not able to, say, store it in an object. I think I understand that the height is a property of the split, not the leaf itself, but the printing functions display a "height" or "h" (which changes with "hang") and that is what I want. Obviously, the info is there (e.g., "str(dendrogram)"), I just don't see how to obtain it as I want.



hc <- hclust(dist(USArrests), "ave")
hcd <- as.dendrogram(hc, hang = 0.001)


dendrapply(rev(hcd), hnode)

## None of the following work as I want

hnode <- function(x) {
    ## nothing
    if (is.leaf(x))
        print(x$height)
}


hnode <- function(x) {
    ## just prints
    if (is.leaf(x))
        print(x)
    else
        NULL
}


hnode <- function(x) {
    ## doesn't work either
    if (is.leaf(x))
        strsplit(as.character(x), " ")[6]
    else
        NULL
}

hnode <- function(x) {
    ## prints; no storing
    if (is.leaf(x))
        print(x)
    else
        NULL
}

hnode <- function(x) {
    ## prints; no storing
    if (is.leaf(x))
        x
    else
        NULL
}




Thanks,


R.

--
Ramon Diaz-Uriarte
Bioinformatics Unit
Spanish National Cancer Centre (CNIO)
http://ligarto.org/rdiaz


**NOTA DE CONFIDENCIALIDAD** Este correo electrónico, y en s...{{dropped}}




More information about the R-help mailing list