我有数据框
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 - 2000
,medium = 100 - 499
,Low = 0 - 99
然后我得到
product cost
1 Product1 Low
2 Product2 High
3 Product3 Low
4 Product4 medium
5 Product5 medium
6 Product6 high
我可以在R中使用kmeans()
函数吗?
还是其他方法可以帮助您?
答案 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