Learn R Programming

dendextend (version 1.1.2)

untangle: untangle dendrograms

Description

One untangle function to rule them all. This function untangles dendrogram lists (dendlist), Using various heuristics.

Usage

untangle(dend1, ...)

## S3 method for class 'dendrogram':
untangle(dend1, dend2 ,
   method = c("labels", "ladderize", "random", "step1side", "step2side", "DendSer"),
   ...)

## S3 method for class 'dendlist':
untangle(dend1,
   method = c("labels", "ladderize", "random", "step1side", "step2side", "DendSer"),
   which = c(1L,2L), ...)

Arguments

dend1
a dednrogram or a dendlist object
...
passed to the releavnt untangle function
dend2
A second dednrogram (to untangle against)
which
an integer vector of length 2, indicating which of the trees in the dendlist object should be plotted
method
a character indicating the type of untangle heuristic to use.

Value

  • A dendlist, with two trees after they have been untangled. If the dendlist was originally larger than 2, it will return the original dendlist but with the relevant trees properly rotate.

Details

This function wraps all of the untagnle functions, in order to make it easier to find our about (and use) them.

See Also

tanglegram, untangle_random_search, untangle_step_rotate_1side, untangle_step_rotate_2side, untangle_DendSer, entanglement

Examples

Run this code
set.seed(23235)
ss <- sample(1:150, 10 )
dend1 <- iris[ss,-5] %>% dist %>% hclust("com") %>% as.dendrogram
dend2 <- iris[ss,-5] %>% dist %>% hclust("sin") %>% as.dendrogram
dend12 <- dendlist(dend1, dend2)

dend12 %>% tanglegram

untangle(dend1, dend2, method="random", R = 5) %>% tanglegram

# it works, and we get something different:
set.seed(1234)
dend12 %>% untangle(method="random", R = 5) %>% tanglegram

set.seed(1234)
# fixes it completely:
dend12 %>% untangle(method="random", R = 5) %>% untangle(method="step1") %>% tanglegram
# not good enough
dend12 %>% untangle(method="step1") %>% tanglegram
# not good enough
dend12 %>% untangle(method="step2") %>% tanglegram
# How we might wish to use it:
set.seed(12777)
dend12 %>%
   untangle(method="random", R = 1) %>%
   untangle(method="step2") %>%
   tanglegram

Run the code above in your browser using DataLab