【问题标题】:R: how to divide a vector of values into fixed number of groups, based on smallest distance?R:如何根据最小距离将值向量分成固定数量的组?
【发布时间】:2015-06-19 09:44:24
【问题描述】:

我认为我有一个相当简单的问题,但我无法找出最佳方法。我有一个包含 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-means聚类。 kmeans(Myvector,3, algo="Lloyd") 似乎适用于您的测试数据。
  • 太棒了:-)。如果你愿意,我会将此作为答案。

标签: r cluster-analysis


【解决方案1】:

听起来你想做 k-means 聚类。像这样的东西会起作用

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

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

【讨论】:

    猜你喜欢
    • 2019-02-20
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    相关资源
    最近更新 更多