问题描述
我正在使用 fviz_cluster 包。 https://afit-r.github.io/kmeans_clustering 有一个很好的教程,它展示了如何使用包来可视化集群。这都是直截了当的。他们用于本教程的数据是 df
'data.frame': 50 obs. of 4 variables:
$ Murder : num 13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ...
$ Assault : int 236 263 294 190 276 204 110 238 335 211 ...
$ UrbanPop: int 58 48 80 50 91 78 77 72 80 60 ...
$ Rape : num 21.2 44.5 31 19.5 40.6 38.7 11.1 15.8 31.9 25.8 ...
具有每个观察键的数据框第一列没有列标题。有了它,这个包就很好用了。
我的数据显然有一个列标题。我应该如何让我的数据看起来像 USArrests 这样才有效,但是我需要将簇号附加到数据中?
我的数据有 11 列,包括带有观察名称的第一列,所以我通过使用
跳过第一列来进行聚类[,2:11]
when I use this to visualize using
fviz_cluster(allLfit,data = allLdf[,2:11])
它有效,但情节使用了不明确的名称
有什么建议吗??
谢谢!!!
structure(list(PIN = structure(1:5,.Label = c("a","b","c","d","e"),class = "factor"),v1 = c(0.8,0.36,0.21,0.84,0.43
),v2 = c(0.87,0.01,0.56,0.75,0.98),v3 = c(0.48,0.13,0.26,0.34,0.83)),row.names = c(NA,5L),class = "data.frame")
解决方法
按照link中的相同过程,scale
d数字列以创建'df',同时将row.names
设置为第一列,得到kmeans
('k2') 并在 'k2' 上使用 fviz_cluster
,指定 'df' 作为 scale
d 数据集
library(factoextra)
library(cluster)
df <- scale(`row.names<-`(allLdf[-1],allLdf[[1]]))
k2 <- kmeans(df,centers = 2,nstart = 25)
fviz_cluster(k2,data = df)
-输出