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

时间:2018-03-27 18:58:38

标签: r loops k-means

我正在尝试在循环中运行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)
}

1 个答案:

答案 0 :(得分: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)
}