R: Find which nodes satisfies a condition

noded_with_condition {dendextend} | R Documentation

## Find which nodes satisfies a condition

### Description

Goes through a tree's nodes in order to return a vector with whether (TRUE/FALSE) each node satisies some condition (function)

### Usage

    noded_with_condition(dend, condition, include_leaves = TRUE,
      include_branches = TRUE, na.rm = FALSE, ...)

### Arguments

`dend` | a dendrogram dend
`condition` | a function that gets a node and return TRUE or FALSE (based on whether or not that node/tree fulfills the "condition")
`include_leaves` | logical. Should leaves attributes be included as well?
`include_branches` | logical. Should non-leaf (branch node) attributes be included as well?
`na.rm` | logical. Should NA attributes be REMOVED from the resulting vector?
`...` | passed to the condition function

### Value

A logical vector with TRUE/FALSE, specifying for each of the dendrogram's nodes if it fulfills the condition or not.

### See Also

branches_attr_by_labels, get_leaves_attr, nnodes, nleaves

### Examples

    ## Not run:

    library(dendextend)

    set.seed(23235)
    ss <- sample(1:150, 10 )

    # Getting the dend dend
    dend <- iris[ss,-5] %>% dist %>% hclust %>% as.dendrogram
    dend %>% plot

    this is the basis for branches_attr_by_labels
    has_any_labels <- function(sub_dend, the_labels) any(labels(sub_dend) %in% the_labels)
    cols <- noded_with_condition(dend, has_any_labels,
                the_labels = c("126","109", "59")) %>%
                ifelse(2,1)
    set(dend, "branches_col", cols) %>% plot

    # Similar to branches_attr_by_labels - but for heights!
    high_enough <- function(sub_dend, height) attr(sub_dend, "height") > height
    cols <- noded_with_condition(dend, high_enough, height = 1) %>% ifelse(2,1)
    set(dend, "branches_col", cols) %>% plot

    ## End(Not run)

[Package dendextend version 1.8.0 Index]