Как закрасить метки дендрограммы дополнительной факторной переменной в R

Я создал дендрограмму после запуска анализа иерархической кластеризации в R с использованием приведенного ниже кода. Сейчас я пытаюсь раскрасить метки в соответствии с другой факторной переменной, которая сохраняется как вектор. Самое близкое к этому достижение - это раскрасить ветви с помощьюColourDendrogram функция вsparcl пакет. Если возможно, я бы предпочел раскрасить этикетки. Я нашел ответы на похожие вопросы по следующим ссылкамЦвет ветвей дендрограммы с использованием существующего столбца & Окраска ветвей в дендрограмме в R, но я не смог понять, как преобразовать пример кода для моей цели. Ниже приведен пример данных и кода.

> dput(df)
structure(list(labs = c("a1", "a2", "a3", "a4", "a5", "a6", "a7", 
"a8", "b1", "b2", "b3", "b4", "b5", "b6", "b7"), var = c(1L, 
1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L, 2L, 2L), td = c(13.1, 
14.5, 16.7, 12.9, 14.9, 15.6, 13.4, 15.3, 12.8, 14.5, 14.7, 13.1, 
14.9, 15.6, 14.6), fd = c(2L, 3L, 3L, 1L, 2L, 3L, 2L, 3L, 2L, 
4L, 2L, 1L, 4L, 3L, 3L)), .Names = c("labs", "var", "td", "fd"
), class = "data.frame", row.names = c(NA, -15L))

df.nw = df[,3:4]
labs = df$labs

d = dist(as.matrix(df.nw))                          # find distance matrix 
hc = hclust(d, method="complete")                   # apply hierarchical clustering 
plot(hc, hang=-0.01, cex=0.6, labels=labs, xlab="") # plot the dendrogram

hcd = as.dendrogram(hc)                             # convert hclust to dendrogram 
plot(hcd, cex=0.6)                                  # plot using dendrogram object

Var = df$var                                        # factor variable for colours
varCol = gsub("1","red",Var)                        # convert numbers to colours
varCol = gsub("2","blue",varCol)

# colour-code dendrogram branches by a factor 
library(sparcl)
ColorDendrogram(hc, y=varCol, branchlength=0.9, labels=labs,
                xlab="", ylab="", sub="")   

Любой совет, как это сделать, будет принята с благодарностью.

Ответы на вопрос(2)

Ваш ответ на вопрос