noded_with_condition: Find which nodes satisfies a condition

View source: R/noded_with_condition.R

noded_with_conditionR 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)


dendextend documentation built on Oct. 13, 2024, 1:06 a.m.