我有数据框架
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
我将为成本列进行聚类以获得3个集群:高,中,低点:
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()
函数执行此操作或另一种方式可以提供帮助?
您想 predefine 阈值(更好),您不做clustering (它是"监督的",没有学到)。
您要求的是简单的如果是语句 ...
您还可以制作索引并匹配值。这将需要更少的代码,并避免编写嵌套的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