在数据帧R中将1列聚类

时间:2018-12-18 12:17:25

标签: r cluster-analysis k-means

我有数据框

data1<- read.csv("book1.csv", header= TRUE)

head(data1)
  product    cost
1 Product1    50
2 Product2  1390
3 Product3    50
4 Product4   485
5 Product5   325
6 Product6   515

我将对cost列进行聚类以获得3个聚类:high,medium,low,如:

high = 500 - 2000medium = 100 - 499Low = 0 - 99

然后我得到

   product    cost
1 Product1    Low
2 Product2    High
3 Product3    Low
4 Product4   medium 
5 Product5   medium 
6 Product6   high 

我可以在R中使用kmeans()函数吗?

还是其他方法可以帮助您?

2 个答案:

答案 0 :(得分:0)

由于您希望预定义阈值(并且更好),因此您没有进行聚类(它是“监督”的,是不了解的)。

您要的是一个简单的if-then语句 ...

答案 1 :(得分:0)

您还可以创建索引并匹配值。这将需要较少的代码,并避免编写嵌套的if-else循环。假设df是您的数据框:

# generate indexes
i1 <- df$cost %in% seq(0,99)
i2 <- df$cost %in% seq(100,499)
i3 <- df$cost %in% seq(500,2000)

df$cost <- c('Low','medium','High')[i1+2*i2+3*i3]

    product   cost
1: Product1    Low
2: Product2   High
3: Product3    Low
4: Product4 medium
5: Product5 medium
6: Product6   High