我的数据集很大,我正在尝试进行K均值聚类分析。但是,我想通过更改质心的数量来重复多次此操作。到目前为止,这是我所做的:
# import data
week1 <- read.csv("WEEK1.csv", header = TRUE)
week2 <- read.csv("WEEK2.csv", header = TRUE)
week3 <- read.csv("WEEK3.csv", header = TRUE)
week4 <- read.csv("WEEK4.csv", header = TRUE)
data <- rbind(week1, week2, week3, week4)
# variable names
for(i in 1:50){
assign(paste("cluster", i, sep = ""), i)
}
我花了很长时间试图弄清楚如何在for循环中“调用”我的集群变量,以便可以执行以下操作:
for (i in 1:50){
cluster[i] <- kmeans(data, i, nstart = 1)
}
有什么想法吗?
答案 0 :(得分:0)
这可能会有所帮助,将各种数量的簇放在向量中,然后将结果存储在列表中。我的示例包含3个最大质心,由于您尚未发布数据,因此我使用的是mtcars
数据集。
vector <- c() # an empty vector
for(i in 1:3){ # a loop that creates the
# various n of clusters
vector[i] <- assign(paste("cluster", i, sep = ""), i)
}
现在我们可以创建kmeans
的列表:
list_k <- list() # an empty list
for (i in vector){ # fill it with the kmeans
list_k[[i]] <- kmeans(mtcars, i, nstart = 1)
}
要访问每个kmean,可以使用以下方法:
list_k[[3]]
要访问每个列表的每个元素,请执行以下操作:
list_k[[3]][1]