Единственный допустимый способ освобождения неиспользуемой памяти - использовать функцию члена shrink_to_fit (). Использование swap не имеет никакого смысла, поскольку в стандарте не говорится, что неиспользуемая память будет выпущена при использовании этой операции.
В качестве примера
s.clear();
s.shrink_to_fit();
Я думаю, вам лучше создать объект hclust
, а затем преобразовать его в дендрограмму, используя as.dendrogram
, а затем попытаться создать дендрограмму напрямую. Посмотрите справочную страницу ? Hclust
, чтобы увидеть значение элементов объекта hclust
.
Вот простой пример с четырьмя листами A, B, C и D, объединяющими сначала AB, затем CD и, наконец, AB-CD:
a <- list() # initialize empty object
# define merging pattern:
# negative numbers are leaves,
# positive are merged clusters (defined by row number in $merge)
a$merge <- matrix(c(-1, -2,
-3, -4,
1, 2), nc=2, byrow=TRUE )
a$height <- c(1, 1.5, 3) # define merge heights
a$order <- 1:4 # order of leaves(trivial if hand-entered)
a$labels <- LETTERS[1:4] # labels of leaves
class(a) <- "hclust" # make it an hclust object
plot(a) # look at the result
#convert to a dendrogram object if needed
ad <- as.dendrogram(a)