dendextend (version 1.17.1)

rllply: recursivly apply a function on a list

Description

recursivly apply a function on a list - and returns the output as a list, following the naming convention in the plyr package the big difference between this and rapply is that this will also apply the function on EACH element of the list, even if it's not a "terminal node" inside the list tree. An attribute is added to indicate if the value returned is from a branch or a leaf.

Usage

rllply(x, FUN, add_notation = FALSE, ...)

Value

a list with ALL of the nodes (from the original "x" list), that FUN was applied on.

Arguments

x

a list.

FUN

a function to apply on each element of the list

add_notation

logical. Should each node be added a "position_type" attribute, stating if it is a "Branch" or a "Leaf".

...

not used.

Examples

Run this code
if (FALSE) {
x <- list(1)
x
rllply(x, function(x) {
  x
}, add_notation = TRUE)

x <- list(1, 2, list(31))
x
rllply(x, function(x) {
  x
}, add_notation = TRUE)
# the first element is the entire tree
# after FUN was applied to its root element.

hc <- hclust(dist(USArrests[1:4, ]), "ave")
dend <- as.dendrogram(hc)
rllply(dend, function(x) {
  attr(x, "height")
})
rllply(dend, function(x) {
  attr(x, "members")
})
}

Run the code above in your browser using DataLab