кластеризация 1 столбца в кадре данных R - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть фрейм данных

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 

Могу ли я сделать это с помощью функции kmeans() в R?

или другой способ может помочь?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Вы также можете создавать индексы и сопоставлять значения.Это потребует меньше кода и позволит избежать записи вложенных циклов 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
0 голосов
/ 20 декабря 2018

Если вы хотите предопределить пороговые значения (и это лучше), вы не выполняете кластеризацию (это "контролируется", а не обучается).

Вы запрашиваете простое утверждение if-then ...

...