You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言层次聚类分析时如何修改聚类树图的标签值?

问题原因

你遇到的标签显示异常由两个常见操作问题导致:

  • 将Station列转为因子后直接赋值行名,R会默认读取因子底层的整数编码而非展示的文本标签
  • 删除Station列后只剩1列数值数据,R会隐式将单列数据框转为向量,丢失行名属性

解决方案

两种修改思路按需选择即可:

方案1:省去不必要的因子转换步骤

层次聚类分析不需要将站点列转为因子,直接用原始字符值赋值行名即可,完整修正代码如下:

# 原始数据构造
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))

# 直接用字符型站点名赋值行名
rownames(data) = data$Station
# 加drop=FALSE避免单列数据转为向量丢失行名
data = data[,-1, drop=FALSE]
require(stats)
res.dist = dist(x=data, method = "euclidean")
hcl = hclust(d=res.dist, method = "complete")
plot(x=hcl, hang = -1, cex = 0.6)

方案2:保留因子类型的修改方式

如果其他分析逻辑需要Station为因子类型,赋值行名时先做一次字符转换即可:

data$Station = as.factor(data$Station)
# 因子转字符后再赋值行名
rownames(data) = as.character(data$Station)
data = data[,-1, drop=FALSE]
# 后续聚类代码和原逻辑一致即可

内容的提问来源于stack exchange,提问作者Kazi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 17:54:03