| get_nodes_attr | R Documentation |
Allows easy access to attributes of branches and/or leaves, with option of returning a vector with/withough NA's (for marking the missing attr value)
get_nodes_attr(
dend,
attribute,
id,
include_leaves = TRUE,
include_branches = TRUE,
simplify = TRUE,
na.rm = FALSE,
...
)
dend |
a dendrogram object |
attribute |
character scalar of the attribute ( |
id |
integer vector. If given - only the attr of these nodes id will be returned (via depth first search) |
include_leaves |
logical. Should leaves attributes be included as well? |
include_branches |
logical. Should non-leaf (branch node) attributes be included as well? |
simplify |
logical (default is TRUE). should the result be simplified to a vector (using simplify2array ) if possible? If it is not possible it will return a matrix. When FALSE, a list is returned. |
na.rm |
logical. Should NA attributes be REMOVED from the resulting vector? |
... |
not used |
A vector with the dendrogram's nodes attribute. If an attribute is missing from some nodes, it will return NA in that vector.
Heavily inspired by the code in the
function labels.dendrogram,
so credit should go to Martin Maechler.
get_leaves_attr, nnodes, nleaves
# define dendrogram object to play with:
hc <- hclust(dist(USArrests[1:3, ]), "ave")
dend <- as.dendrogram(hc)
# get_leaves_attr(dend) # error :)
get_leaves_attr(dend, "label")
labels(dend, "label")
get_leaves_attr(dend, "height") # should be 0's
get_nodes_attr(dend, "height")
get_leaves_attr(dend, "leaf") # should be TRUE's
get_nodes_attr(dend, "leaf") # conatins NA's
get_leaves_attr(dend, "members") # should be 1's
get_nodes_attr(dend, "members", include_branches = FALSE, na.rm = TRUE) #
get_nodes_attr(dend, "members") #
get_nodes_attr(dend, "members", simplify = FALSE)
get_nodes_attr(dend, "members", include_leaves = FALSE, na.rm = TRUE) #
get_nodes_attr(dend, "members", id = c(1, 3), simplify = FALSE)
get_nodes_attr(dend, "members", id = c(1, 3)) #
hang_dend <- hang.dendrogram(dend)
get_leaves_attr(hang_dend, "height") # no longer 0!
get_nodes_attr(hang_dend, "height") # does not include any 0s!
# does not include leaves values:
get_nodes_attr(hang_dend, "height", include_leaves = FALSE)
# remove leaves values all together:
get_nodes_attr(hang_dend, "height", include_leaves = FALSE, na.rm = TRUE)
## Not run:
library(microbenchmark)
# get_leaves_attr is twice faster than get_nodes_attr
microbenchmark(
get_leaves_attr(dend, "members"), # should be 1's
get_nodes_attr(dend, "members", include_branches = FALSE, na.rm = TRUE)
)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.