install.packages(vegan) library(vegan) getwd() setwd("c:/DANKA HLAVNY ADRESAR/Vyuka/Bi5980 Biodiverzita/Biodiverzita vyuka 2015") pilatkoviti <- read.csv("05_2015_Data Pilatkoviti.csv",sep = ";" ,dec = ",", header = T, row.names = 1) pilatkoviti # nazvy riadkov su povodny prvy stlpec pilatkoviti.bray <- vegdist(pilatkoviti, "bray", diag = T, upper = T) pilatkoviti.bray ?hclust hclust(pilatkoviti.bray, method = "complete") pilatkoviti.bray.complete <- hclust(pilatkoviti.bray, method = "complete") plot(pilatkoviti.bray.complete) plot(pilatkoviti.bray.complete, main = "Bray-Curtis, Complete linkage") plot(pilatkoviti.bray.complete, labels = rownames(pilatkoviti.bray), hang = -1, main = "Bray-Curtis, Complete linkage") plot(pilatkoviti.bray.complete, labels = rownames(pilatkoviti.bray), hang = -1, axes = FALSE, main = "Bray-Curtis, Complete linkage") plot(pilatkoviti.bray.complete, labels = rownames(pilatkoviti.bray), hang = -1, axes = FALSE, ann = FALSE) pilatkoviti.bray.ward <- hclust(pilatkoviti.bray, method = "ward.D2") # ... ale tu pozor, lebo Ward sa nemá používať s Bray-Curtis # Ward method should not be combined with distance measures, which are not strictly metric, which is e.g. popular Bray-Curtis distance plot(pilatkoviti.bray.ward, labels = rownames(pilatkoviti.bray), hang = -1, main = "Bray-Curtis, Ward") plot(pilatkoviti.bray.ward, labels = rownames(pilatkoviti.bray), hang = -1, axes = FALSE, ann = FALSE) -------------------------------------------------------------------------------------------------------------- # oznaceni shluku v dendrogramu, budem tam chciet oznacit 2 shkuky, alebo 3 shluky plot (pilatkoviti.bray.complete, labels = rownames(pilatkoviti.bray), hang = -1, axes = FALSE, main = 'Complete linkage') rect.hclust (pilatkoviti.bray.complete, k = 2) rect.hclust (pilatkoviti.bray.complete, k = 3, border = "blue") prislusnost.3shluky <- cutree (pilatkoviti.bray.complete, k = 3) # vrati prislusnost objektu ke shlukum prislusnost.3shluky -------------------------------------------------------------------------------------------------------------- # nakreslime 3 dendrogramy na jeden obrazok - single linkage, average linkage, complete linkage pilatkoviti.bray.single <- hclust(pilatkoviti.bray, method = "single") pilatkoviti.bray.average <- hclust(pilatkoviti.bray, method = "average") pilatkoviti.bray.complete <- hclust(pilatkoviti.bray, method = "complete") par (mfrow = c (1,3)) # nakresli vsetky dendrogramy do jedneho obrazku plot (pilatkoviti.bray.single, main = 'Single linkage') plot (pilatkoviti.bray.average, main = 'Average linkage') plot (pilatkoviti.bray.complete, main = 'Complete linkage') # alebo ak chceme mat "nozicky" od zaciatku, tak takto: par (mfrow = c (1,3)) plot (pilatkoviti.bray.single, labels = rownames(pilatkoviti.bray), hang = -1, axes = FALSE, main = 'Single linkage') plot (pilatkoviti.bray.average, labels = rownames(pilatkoviti.bray), hang = -1, axes = FALSE, main = 'Average linkage') plot (pilatkoviti.bray.complete, labels = rownames(pilatkoviti.bray), hang = -1, axes = FALSE, main = 'Complete linkage') # aby nechcelo kreslit vsetky dalsie obrazky po troch, tak ... par(mfrow = c(1,1)) -------------------------------------------------------------------------------------------------------------- POZNAMKA: agnes (library cluster) ... obsahuje 6 shlukovacich algoritmu, nektere z nich nejsou obsazeny ve funkci 'hclust'. pak pri kresleni dendrogramu je vhodne nejdrive transformovat objekt z agnes jako objekt z hclust (pouzit as.hclust) -------------------------------------------------------------------------------------------------------------- POZNAMKA: nehierarchicke shlukovani - metoda k-means cluster.kmeans <- kmeans (dis, centers = 5) cluster.kmeans$cluster