这是我的问题:从更大的数据框架中,我创建了一个子集数据框,其中只包含了我需要的聚类分析变量。请参阅下面的示例,例如使用虹膜数据。 假设我想计算每个群集组的平均Petal.Width。如果我没有在聚类分析中包含这个变量,那么我怎么能这样做呢?因此它不会影响分析本身?我认为我可以简单地合并两个dfs,但是(1)我没有在这个例子中使用的ID变量,(2)即使我有一个ID变量,它也不会被包含在聚类分析中,因为它会影响我的聚类。
data(iris)
clust<-cbind(iris$Sepal.Length,
iris$Sepal.Width,
iris$Petal.Length)
colnames(clust)<-c("sl","sw","pl")
#Skipped some steps I took in between to omit NA values, scale using z-score, and determine optimum number of clusters
fit<-kmeans(clust,3)
aggregate(clust,by=list(fit$cluster),FUN=mean)
clustdf<-data.frame(clust,fit$cluster)
答案 0 :(得分:0)
您也可以在列子集上运行kmeans而不拆分原始df。然后你不必担心合并你的Petal.Width列。
data(iris)
fit <- kmeans(iris[,c("Sepal.Length","Sepal.Width","Petal.Length")],3)
aggregate(iris[,c("Sepal.Length","Sepal.Width","Petal.Length","Petal.Width")],
by=list(fit$cluster),FUN=mean)
clustdf <- data.frame(iris,fit$cluster)