K表示聚类-R中的ID而不是索引

时间:2018-12-03 20:07:39

标签: r k-means

我将产品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和簇号。

enter image description here

下面的数据集示例:Product_ID,sales_of_sales,profit_of_sales

enter image description here

有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

您在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, ]