我如何 运行 k-means 在一个循环中对 20 个数据集进行聚类?下面是我使用的代码

How do I run k-means clustering in a loop for 20 data sets ? Below is the code I used

我正在尝试 运行 循环中的 k 均值聚类,但无法通过使用以下代码来实现....你能帮我吗?

rd_1<-mydata
ID <- as.character(unique(rd_1$hotel))
length(ID)

final_data <- data.frame()
#For Loop
for (i in 1: length(ID)) { 
    test_subset <- rd_1[rd_1$hotel==ID[i],]
    #K-means clustering
    set.seed(65890)
    results<-kmeans(test_subset[,c(3:4)],centers = 3,nstart = 25)
    rd_1<-data.frame(rd_1,results$cluster) 
    final_data <-rbind(final_data,test_subset)
}

我看到的问题是您将模型结果添加回 rd_1 而不是 test_subset。尝试以下修订:

for (i in 1: length(ID)) { 
    test_subset <- rd_1[rd_1$hotel==ID[i],]
    #K-means clustering
    set.seed(65890)
    results<-kmeans(test_subset[,c(3:4)],centers = 3,nstart = 25)
    test_subset<-data.frame(test_subset,results$cluster) 
    final_data <-rbind(final_data,test_subset)
}