# Ten kod służy do grupowania krajów metodą k-średnich # Zainstaluj następujące pakiety: install.packages("ggsignif", type="win.binary") install.packages("ggpubr", type="win.binary") install.packages("factoextra") install.packages("dplyr") install.packages("writexl") # Zaimportuj plik z danymi (File -> Import dataset -> From Excel...) # Zawartość pierwszej kolumny powinna być nazwą wiersza df<-data.frame(NAZWAPLIKU,row.names = TRUE) mydata <- scale(df) # normalizacja zmiennych # Załaduj pakiet factoextra library(factoextra) # Wykorzystaj funkcj? fviz_nbclust do ustalenia optymalnej liczby klastrów fviz_nbclust(mydata, kmeans, method = "silhouette") # Dokonaj grupowania obiektów podobnych za pomocą metody k-średnich dla wskazanej liczby klastrów km.res <- kmeans(mydata, LICZBAKLASTRÓW, nstart = 25) print(km.res) # Wyniki klastrowania aggregate(df, by=list(cluster=km.res$cluster), mean) #średnie wartości zmiennych w klastrach library(RColorBrewer) display.brewer.all() # Wizualizacja klastrów fviz_cluster(km.res, data = mydata, palette = c("Accent"), ellipse.type = "euclid", # Elipsa wokół centroidu klastra star.plot = TRUE, # łączenie elementów skupienia z jego centrodiem repel = TRUE, # Nienakładanie się etykiet ggtheme=theme_minimal()) # dodanie numeru klasra do zbioru danych nowy <- cbind(df, cluster = km.res$cluster) # zapisanie danych do excela library("dplyr") library("writexl") #nazwa wiersza jako kolumna data<-tibble::rownames_to_column(nowy, "kraj") write_xlsx(data, path = "PLIKEXCEL.xlsx") #Koniec # Klastrowanie aglomeracyjne - Metoda Warda hc.res <- eclust(mydata, "hclust", k = LICZBAKLASTRÓW, hc_metric = "euclidean", hc_method = "ward.D2") # Utworzenie dendrogramu fviz_dend(hc.res, show_labels = TRUE, palette = "jco", as.ggplot = TRUE) # dodanie numeru klasra do zbioru danych nowy2 <- cbind(df, cluster = hc.res$cluster) data<-tibble::rownames_to_column(nowy2, "kraj") write_xlsx(data, path = "PLIKEXCEL.xlsx")