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

问题描述 投票:0回答:1

我试图在循环中运行k-means聚类,但是不能通过使用下面的代码来执行此操作....你能帮帮我吗?

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)
}
r loops k-means
1个回答
0
投票

我看到的问题是你将模型结果添加回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)
}
© www.soinside.com 2019 - 2024. All rights reserved.