如何将不同的数据框与我在R中为聚类分析创建的数据框合并?

时间:2016-03-30 21:49:44

标签: r merge dataframe

这是我的问题:从更大的数据框架中,我创建了一个子集数据框,其中只包含了我需要的聚类分析变量。请参阅下面的示例,例如使用虹膜数据。 假设我想计算每个群集组的平均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)

1 个答案:

答案 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)