在k-means聚类分析中用R求聚类均值

在k-means聚类分析中用R求聚类均值,r,cluster-analysis,k-means,R,Cluster Analysis,K Means,我使用k-means算法创建了两个集群。每个集群包含4个变量。如果我想获得每个集群中每个变量的平均值,我应该: clusteredsubset$centers 或 其中,y是数据矩阵(4列),而clusteredsubset是kmeans的结果,我将使用: means = sapply(split(clusteredsubset, clusteredsubset$cluster),function(x) {return(sapply(x,function(x){return(mean

我使用k-means算法创建了两个集群。每个集群包含4个变量。如果我想获得每个集群中每个变量的平均值,我应该:

clusteredsubset$centers

其中,
y
是数据矩阵(4列),而
clusteredsubset
kmeans
的结果,我将使用:

means = sapply(split(clusteredsubset, clusteredsubset$cluster),function(x)
     {return(sapply(x,function(x){return(mean(x))}))})
我将使用:

means = sapply(split(clusteredsubset, clusteredsubset$cluster),function(x)
     {return(sapply(x,function(x){return(mean(x))}))})

任何一个都可以,因为它们给出相同的结果。但是既然
kmeans
返回
centers
,为什么不使用它呢

以下内容基于
?kmeans
中的第一个示例:

set.seed(0)
x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
           matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
colnames(x) <- c("x", "y")
cl <- kmeans(x, 2)

## what `kmeans` returns
cl$centers
#              x            y
#1 -0.0008158201 -0.008394296
#2  0.9261878482  1.029984748

## manual computation
colMeans(x[cl$cluster == 1, ])
#            x             y 
#-0.0008158201 -0.0083942957 

colMeans(x[cl$cluster == 2, ])
#        x         y 
#0.9261878 1.0299847 

任何一个都可以,因为它们给出相同的结果。但是既然
kmeans
返回
centers
,为什么不使用它呢

以下内容基于
?kmeans
中的第一个示例:

set.seed(0)
x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
           matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
colnames(x) <- c("x", "y")
cl <- kmeans(x, 2)

## what `kmeans` returns
cl$centers
#              x            y
#1 -0.0008158201 -0.008394296
#2  0.9261878482  1.029984748

## manual computation
colMeans(x[cl$cluster == 1, ])
#            x             y 
#-0.0008158201 -0.0083942957 

colMeans(x[cl$cluster == 2, ])
#        x         y 
#0.9261878 1.0299847