我需要帮助将我的数据聚集到分配的组中...
我有以下数据框:
# 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将其聚类到我刚刚创建的组中,并将结果分配给数据框中的新列。
有人知道如何执行此操作,或者有较短的方法可以同时完成两个步骤。
谢谢...
我们可以使用:
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))