用簇索引修改原始数据

amend original data with cluster indices

我正在使用这个玩具代码来执行一些基本的层次聚类:

library(dplyr)
library(ggplot2)

OrginalData <- read.table("https://s3.amazonaws.com/Somewhere/IrisTabSepData/IrisData.txt",
                   header = TRUE, sep = "\t")

SubsetData <- subset(OrginalData, select = c(
#"SepalLength"
#,"SepalWidth"
"PetalLength"
,"PetalWidth"
))

clusters = hclust(dist(SubsetData), method = 'average')
plot(clusters)

clusterCut <- cutree(clusters, 3)
table(clusterCut, OrginalData$Species)

ggplot(OrginalData, aes(PetalLength, PetalWidth, color = OrginalData$Species)) + 
  geom_point(alpha = 0.4, size = 3.5) + geom_point(col = clusterCut) + 
  scale_color_manual(values = c('black', 'red', 'green')) 

是否可以向包含在上述代码中创建的集群的原始数据框 OrginalData 添加一个附加列(在本例中为 3 1-3)并将其写入 csv 文件?

您已经创建的变量 clusterCut 包含集群。您可以简单地将它们添加到 data.frame 并使用 write.csv 保存数据。

OrginalData$clusterCut = clusterCut 
write.csv(OrginalData, "EnhancedIris.csv", row.names=FALSE)