R-组内的聚类(K均值)

问题描述 投票:0回答:1

我需要帮助将我的数据聚集到分配的组中...

我有以下数据框:

# Generate data frame
set.seed(1)
df1 <- data.frame(
  start.x = sample(1:20),
  start.y = sample(1:20),
  end.x = sample(1:20),
  end.y = sample(1:20)
)

我已经使用K均值对其进行了分组:

# Group using K-means
groups <- kmeans(df1[,c('start.x', 'start.y', 'end.x', 'end.y')], 4)
df1$group <- as.factor(groups$cluster)

现在,我想再次使用K-means将其聚类到我刚刚创建的组中,并将结果分配给数据框中的新列。

有人知道如何执行此操作,或者有较短的方法可以同时完成两个步骤。

谢谢...

r dplyr lapply k-means sapply
1个回答
0
投票

我们可以使用:

library(dplyr)
library(purrr)

df1 %>%
  group_split(group = kmeans(.[,c('start.x', 'start.y', 'end.x', 'end.y')], 4)$cluster) %>%
  map_df(~.x %>% mutate(new_group = 
                 kmeans(.x[,c('start.x', 'start.y', 'end.x', 'end.y')], 2)$cluster))
© www.soinside.com 2019 - 2024. All rights reserved.