R:如何根据最小距离将值向量分成固定数量的组?

R: how to divide a vector of values into fixed number of groups, based on smallest distance?

我想我有一个相当简单的问题,但我想不出最好的方法。我有一个包含 30 个不同值的向量。现在我需要将向量分成 10 组,使组内方差的均值尽可能小。组的大小并不重要,可以是 1 到 21 之间的任何值。

例子。假设我有六个值的向量,我必须将其分成三组:

Myvector <- c(0.88,0.79,0.78,0.62,0.60,0.58)

显然解决方案是:

Group1 <-c(0.88)
Group2 <-c(0.79,0.78)
Group3 <-c(0.62,0.60,0.58)

是否有一个函数可以提供与示例相同的结果并且我可以将其用于具有 30 个值的向量?

非常感谢。

听起来您想进行 k 均值聚类。这样的东西会起作用

kmeans(Myvector,3, algo="Lloyd")

请注意,我更改了默认算法以匹配您想要的输出。如果您阅读 ?kmeans 帮助页面,您会发现有不同的算法可以计算不同的集群,因为这不是一个微不足道的计算问题。他们可能必然保证最优性。