Я сгруппировал набор данных, основанный на широте и долготе, и использовал функцию среза, чтобы определить, к какому кластеру относится каждая уникальная широта и долгота. Мой вывод показан здесь. AL ###### - это уникальный идентификатор, а номер под ним - его кластер. Теперь мне нужно связать эти результаты с моим исходным набором данных. В качестве дополнительной проблемы, переменная, в которой я сохранил результаты, была по какой-то причине классом int, и если я изменю его на фрейм данных, он не будет работать. Кто-нибудь знаком с cutree или знает, как решить эту проблему? Спасибо.

    CoastList <- list()
for(i in names(table(CoastHurricanes$ID))){
  Newtemp <- CoastHurricanes[CoastHurricanes$ID == i, c("Latitude","Longitude")]
  CoastList[[i]] <- as.data.frame(Newtemp)
}

Coast.dist.mat <- dist(x = CoastList, method = "DTW")

HurricaneTaxonomy <- hclust(Coast.dist.mat)
plot(clusters)
memb <- cutree(HurricaneTaxonomy, 10)
CoastHurricanes$ClusterGroup <- NA
0
Samuel Greer 4 Апр 2020 в 08:11

2 ответа

Лучший ответ

Вот как я это исправил, если кому-то интересно. CoastHurricanes <- as.data.frame(CoastHurricanes) for(i in names(memb)){ CoastHurricanes$ClusterGroup[CoastHurricanes$ID == i] <- memb[names(memb) == i] }

0
Samuel Greer 8 Апр 2020 в 17:03

Попробуйте использовать функцию mutate из dplyr. Mutate создает столбец в вашем наборе данных, который, как я вижу, является CoastHurricanes.

library(dplyr)

CoastHurricanes <- CoastHurricanes %>% mutate(ClusterGroup = memb)

0
platypus17 4 Апр 2020 в 06:38