Learn R Programming

dendextend (version 0.16.1)

cut_lower_fun: Cut a dendrogram - and run a function on the output

Description

Cuts the a tree at height h and returns a list with the FUN function implemented on all the sub trees created by cut at height h. This is used for creating a cutree.dendrogram function, by using the labels function as FUN. This is the Rcpp version of the function, offering a 10-60 times improvement in speed (depending on the tree size it is used on).

Usage

cut_lower_fun(tree, h, FUN = labels, warn = FALSE, ...)

Arguments

tree
a dendrogram object.
h
a scalar of height to cut the tree by.
FUN
a function to run. (default is "labels")
warn
logical (FALSE) - should the user be warned if reverting to default? (I set it to FALSE since it can be very noisy sometimes...)
...
passed to FUN.

Value

  • A list with the output of running FUN on each of the sub trees derived from cutting "tree"

See Also

labels, dendrogram, cutree.dendrogram

Examples

Run this code
dend = as.dendrogram(hclust(dist(iris[1:4,-5])))
# this is really cool!
cut_lower_fun(dend, .4, labels)
lapply(cut(dend, h = .4)$lower, labels)
cut_lower_fun(dend, .4, order.dendrogram)


# require(dendextend)
require(dendextendRcpp)
dend_big = as.dendrogram(hclust(dist(iris[1:150,-5])))
require(microbenchmark)
microbenchmark(old_cut_lower_fun(dend_big,.1),
               dendextendRcpp::dendextendRcpp_cut_lower_fun(dend_big,.1),
               times = 100)
# about 7-15 times faster. It is faster the larger the tree is, and the lower h is.

Run the code above in your browser using DataLab