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

K Means Clustering - ID's instead of indices in R

我根据销售额和销售额对产品 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

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

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