Я пытаюсь раскрасить метки дендрограммы на основе части имени метки. Имя метки происходит от имен файлов в папке. Файлы представляют собой файлы .txt и называются следующим образом: 167_001.txt, где первые три числа указывают на конкретного автора текста, а последние три числа обозначают отдельные фрагменты, написанные этим автором. Я хочу пометить ветки по полному имени файла, но раскрасить метку только на основе первых трех чисел, чтобы я мог видеть, какие работы конкретного автора могут иметь больше общего с другим автором, чтобы увидеть, кто на кого повлиял. Это средневековые авторы, поэтому вы не поможете мне найти современных авторов, которые могли бы что-то заимствовать. Поэтому, если файл начинается с 080, я хочу, чтобы все файлы 080 были одного цвета, независимо от того, какова последняя часть имени файла и где бы он ни сгруппирован, но я все же хочу, чтобы конечная часть файла находилась в название ярлыка. Вот что у меня есть на данный момент:
# Load data
data(USArrests)
dd <- dist(scale(USArrests), method = "euclidean")
#Perform a cluster analysis on the distance object
hc <- hclust(dd)
#Get the text file names to use as labels
dend <- as.dendrogram(hc)
dend2 = color_unique_labels(dend)
d5gr=color_branches(dend2,5,groupLabels=TRUE)
#plot(d5gr)
plot(d5gr, horiz=TRUE)
Как видите, я использую пакет dendextend. Если у кого-то есть лучший пакет или тот, который также выполнит то, что мне нужно, это было бы здорово. То, что у меня сейчас есть, помещает файлы в одно и то же цветовое семейство, поскольку они достаточно похожи, функция "color_unique_labels", предлагаемая dendextend, по крайней мере, окрашивает их в оттенки одного цвета, но это не делает их точно такого же цвета, что и Я бы хотел, чтобы один и тот же автор всегда был одного цвета, и тогда было бы легче увидеть, какие работы имеют общие черты с разными авторами. Увидеть ниже. Существует несколько сотен разных авторов, поэтому я бы предпочел не назначать каждому индивидуальный цвет вручную (A = "красный", B = "синий", C = "орхидея" и т. Д.), Но предпочел бы что-то, что работает как color_unique_labels и автоматически выбирает и назначает цвет на основе первых 3 чисел в имени файла. В моем примере используется пакет USArrests, и я, возможно, хотел бы увидеть, как раскрасить имена состояний по первой букве, чтобы все состояния «A», состояния «C» и т. Д. Были одного цвета. Таким образом, Алабама, Аляска, Аризона и Арканзас должны быть одного цвета, а Калифорния, Колорадо и Коннектикут также должны быть одного цвета. Опять же, я бы предпочел найти способ сделать его более автоматизированным, поскольку в моем реальном наборе данных есть несколько сотен возможностей, а не только 50, однако я не против, если это единственный вариант. Заранее спасибо!
dendextend дендрограмма с использованием функции color_unique_labels