Learn R Programming

dendextend (version 0.14.2)

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,4),
                  dendextendRcpp::cut_lower_fun(dend_big,4),
                     times = 100)
   # about 20 times faster. It is faster the larger the tree is.

Run the code above in your browser using DataLab