【问题标题】:K Means Clustering - ID's instead of indices in RK 表示聚类 - ID 代替 R 中的索引
【发布时间】:2019-05-05 04:20:48
【问题描述】:

我根据销售额和销售利润对产品 ID 进行聚类,以确定我需要更多关注的产品 ID。

下面的代码将第 2 列(销售额)和第 3 列(销售额)作为 kmeans 的输入。而不是当前的标签,第 1 行是产品 1,第 2 行是产品 2,等等。我希望标签是产品 ID(即 data_nz[,1])而不是行索引。

k2 <- kmeans(data_nz[,2:3], centers = 3, nstart = 1000)

当我输出集群中的数据示例时(排除集群 2,因为这些是我不关心的):

k2$cluster[k2$cluster != 2]

我得到了行索引和簇号,但我想要的是产品 ID 和簇号。

我的数据集示例如下:Product_ID、amount_of_sales、profit_of_sales

有人能指出正确的方向吗?

【问题讨论】:

  • 请不要将您的数据发布为图片。没有人想全部输入。相反,请使用dput 制作您的数据的文本版本并将其粘贴到您的问题中,以便我们可以复制并粘贴到 R 中。
  • 试试rownames(data_nz) &lt;- data_nz[,1] ?
  • @CoreyLevinson 谢谢,你的回答也有效!

标签: r k-means


【解决方案1】:

您已经在data_nz[, 1] 中拥有一个产品 ID 的有序向量,该向量与具有集群编号 (k2$cluster) 的向量相匹配。您可以像这样并排查看它们:

data.frame(product_id = data_nz[[1]],
           cluster = k2$cluster)

如果您想删除某些行,您可以:

data.frame(product_id = data_nz[[1]],
           cluster = k2$cluster
           )[k2$cluster != 2, ]

【讨论】:

    猜你喜欢
    • 2013-08-29
    • 2020-07-04
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 2016-10-13
    • 2016-08-12
    • 2016-09-06
    相关资源
    最近更新 更多