как переименовать значения в иерархическом кластерном анализе в R?

#r #hierarchical-clustering

Вопрос:

У меня есть эти данные с одним столбцом в символе и одним столбцом в значении.

 data = structure(list(Station = c("1A", "1B", "2A", "2B", "3A", "3B", 
"4A", "4B", "5A", "5B", "6A", "6B", "7A", "7B"), Particles.kg = c(370L, 
420L, 250L, 320L, 130L, 210L, 290L, 390L, 230L, 340L, 60L, 90L, 
130L, 170L)), class = "data.frame", row.names = c(NA, -14L))
 

теперь я преобразую символ в фактор с помощью

 data$Station = as.factor(data$Station)
 

затем я начинаю Иерархический кластерный анализ

 rownames(data) = c(data$Station)
data = data[,-1]
require(stats)
res.dist = dist(x=data, method = "euclidean")
hcl = hclust(d=res.dist, method = "complete")
plot(x=hcl, hang = -1, cex = 0.6)
 

(извините, не могу загрузить картинку из-за проблем с сетью), но после этого на моей картинке в заголовке 1A, 2A, 3A, 3B появляется 1,2,3,…..,14.
как я могу это решить?

Ответ №1:

После удаления 1-го столбца остается только один столбец, который сворачивает данные в вектор. Вектор удаляет имена строк фрейма данных, поэтому меток нет.

Вы можете использовать drop = FALSE , чтобы сохранить данные в виде фрейма данных после подмножества.

 rownames(data) = data$Station
data = data[,-1, drop = FALSE]
res.dist = dist(x=data, method = "euclidean")
hcl = hclust(d=res.dist, method = "complete")
plot(x=hcl, hang = -1, cex = 0.6)
 

введите описание изображения здесь

Ответ №2:

Нет необходимости сохранять только столбец измерений, построение графика можно выполнить, вставив данные в dist инструкцию.

Обратите внимание , что я использую data[-1] , нет data[, -1] , что приведет к удалению атрибута dim. Первый всегда возвращает значение sub-df.

 rownames(data) <- data$Station
res.dist <- dist(x = data[-1], method = "euclidean")
hcl <- hclust(d = res.dist, method = "complete")
plot(x = hcl, hang = -1, cex = 0.6)
 

введите описание изображения здесь