我猜您正在使用它来创建目前似乎不存在的图像。
> lmbjck <- cutree(hclust(dist(iris[1:4], "euclidean")), 3)
> table(lmbjck, iris$Species)
lmbjck setosa versicolor virginica
1 50 0 0
2 0 23 49
3 0 27 1
Dist 是根据对具有相同列名和行名的三种不同物种的植物的测量结果创建的。
> iris.dist <- dist(iris[1:4], "euclidean")
> identical(rownames(iris.dist), colnames(iris.dist))
[1] TRUE
该对象被传递给 hclust,它构造一棵树并将其切成三块。对象iris.order
保存绘制树状图的顺序。保留原始顺序,根据此顺序绘制树。
> iris.hclust <- hclust(iris.dist)
> iris.cutree <- cutree(iris.hclust, 3)
> iris.order <- iris.hclust$order
这是证据。我已经将原始Species
名称、有序物种名称放在一起,因为它们可以在树状图中看到,订单号和来自 cutree 函数的组。
> data.frame(original = iris$Species, ordered = iris$Species[iris.order],
order.num = iris.order, cutree = iris.cutree)
original ordered order.num cutree
1 setosa virginica 108 1
2 setosa virginica 131 1
3 setosa virginica 103 1
4 setosa virginica 126 1
5 setosa virginica 130 1
6 setosa virginica 119 1
...
103 virginica setosa 31 2
104 virginica setosa 26 2
105 virginica setosa 10 2
106 virginica setosa 35 2
107 virginica setosa 13 3
108 virginica setosa 2 2
...
让我们看看输出。如果你看第一行,下面order.num
是数字 108。这意味着这个项目(树状图左侧的第一个项目)来自第 108 行。向下浏览到第 108 行,你可以看到原来Species
的确实是virginica
. Cutree 将此分配给 group 1
。让我们看看第 3 行。在下面order.num
你可以看到这个项目来自第 103 行。再次,如果你向下查看第 103 行中的原始物种,它是 (still) virginica
。我将让您检查其他(随机)行并说服自己保留开始构建表的顺序。因此,表格应该是正确的。