"label" assignment operator for vectors, dendrogram, and hclust classes.
labels(object, ...) <- value
# Default S3 method
labels(object, ...) <- value
# S3 method for class 'dendrogram'
labels(object, ...) <- value
# S3 method for class 'hclust'
labels(object, order = TRUE, ...)
# S3 method for class 'hclust'
labels(object, ...) <- value
# S3 method for class 'phylo'
labels(object, ...)
# S3 method for class 'phylo'
labels(object, ...) <- value
The functions here are based on code by Gavin and kohske from (adopted to dendrogram by Tal Galili): https://stackoverflow.com/questions/4614223/how-to-have-the-following-work-labelsx-some-value-r-question Also with some ideas from Gregory Jefferis's dendroextras package.
a variable name (possibly quoted) who's label are to be updated
parameters passed (not currently in use)
a value to be assigned to object's label
default is FALSE. Only relevant for extracting labels from an hclust object (with labels.hclust). Setting order=TRUE will return labels in their order in the dendrogram, instead of the riginal labels order retained from object$labels - which ususally corresponding to the row or column names of the dist object provided to the hclust function.
The updated object
###################
x <- 1:3
labels(x)
#> [1] "1" "2" "3"
labels(x) <- letters[1:3]
labels(x) # [1] "a" "b" "c"
#> [1] "a" "b" "c"
x
#> a b c
#> 1 2 3
# a b c
# 1 2 3
# get("labels<-")
################
# Example for using the assignment with dendrogram and hclust objects:
hc <- hclust(dist(USArrests[1:3, ]), "ave")
dend <- as.dendrogram(hc)
labels(hc) # "Arizona" "Alabama" "Alaska"
#> [1] "Arizona" "Alabama" "Alaska"
labels(hc) <- letters[1:3]
labels(hc) # "a" "b" "c"
#> [1] "a" "b" "c"
labels(dend) # "Arizona" "Alabama" "Alaska"
#> [1] "Arizona" "Alabama" "Alaska"
labels(dend) <- letters[1:3]
labels(dend) # "a" "b" "c"
#> [1] "a" "b" "c"
suppressWarnings(labels(dend) <- LETTERS[1:2]) # will produce a warning
labels(dend) # "A" "B" "A"
#> [1] "A" "B" "A"
labels(dend) <- LETTERS[4:6] # will replace the labels correctly
# (the fact the tree had duplicate labels will not cause a problem)
labels(dend) # "D" "E" "F"
#> [1] "D" "E" "F"