File: get_nodes_attr.Rd

package info (click to toggle)
r-cran-dendextend 1.19.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,072 kB
  • sloc: sh: 13; makefile: 2
file content (98 lines) | stat: -rw-r--r-- 2,946 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/attr_access.R
\name{get_nodes_attr}
\alias{get_nodes_attr}
\title{Get attributes of dendrogram's nodes}
\source{
Heavily inspired by the code in the
function \code{labels.dendrogram},
so credit should go to Martin Maechler.
}
\usage{
get_nodes_attr(
  dend,
  attribute,
  id,
  include_leaves = TRUE,
  include_branches = TRUE,
  simplify = TRUE,
  na.rm = FALSE,
  ...
)
}
\arguments{
\item{dend}{a dendrogram object}

\item{attribute}{character scalar of the attribute (\code{attr})
we wish to get from the nodes}

\item{id}{integer vector. If given - only the attr of these nodes id will be returned (via depth first search)}

\item{include_leaves}{logical. Should leaves attributes be included as well?}

\item{include_branches}{logical. Should non-leaf (branch node)
attributes be included as well?}

\item{simplify}{logical (default is TRUE). should the result be simplified
to a vector (using \link{simplify2array} ) if possible? If it is not possible
it will return a matrix. When FALSE, a list is returned.}

\item{na.rm}{logical. Should NA attributes be REMOVED from the resulting vector?}

\item{...}{not used}
}
\value{
A vector with the dendrogram's nodes attribute. If an attribute is missing
from some nodes, it will return NA in that vector.
}
\description{
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)
}
\examples{
# 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)
\dontrun{
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)
)
}

}
\seealso{
\link{get_leaves_attr}, \link{nnodes}, \link{nleaves}
}