# nastaveni cesty getwd() setwd("c:/Users/brozova/Desktop/2. cviceni/") # nacteni balicku install.packages("magrittr") install.packages('vegan') library("magrittr") library(vegan) # ------------------------------------------------------------------------ # Asociacni matice ------------------------------------------------------- # ------------------------------------------------------------------------ ########## # Priklad 1: Vytvorte asociacni matici pro datovy soubor lokality. V pripade potreby pouzijte vhodnou standardizaci. ########## lokality<-read.table('lokality.csv', sep=";", header=TRUE, dec=".") head(lokality,10) dim(lokality) is(lokality) names(lokality) row.names(lokality)<-lokality[,1] # ulozeni nazvu lokalit do nazvu radku lokality<-lokality[,-1] head(lokality,10) ########## standardizace summary(lokality) # promenne maji odlisny rozsah, data je potreba standardizovat lokality.stan <- lokality%>% na.omit() %>% # odstrani chybejici hodnoty scale() summary(lokality.stan) # prumer promennych je roven 0 var(lokality.stan[,2]) # rozptyl promennych je roven 1 dim(lokality.stan) # jedna lokalita vyrazena z analyzy, protoze nebylo zmereno pH ########## asociacni matice dist.lokality.stan<-dist(lokality.stan,method='euclidean') # vypocet asociacni matice dist.lokality.stan # pouze horni/dolni trojuhelnikova matice dist.lokality.stan<-as.data.frame(as.matrix(dist.lokality.stan))# doplneni na ctvercovou matici a pak prevedeni na tabulku dist.lokality.stan rownames(dist.lokality.stan)<-row.names(lokality)[which(is.na(lokality$pH)==F)] # pridani nazvu radku colnames(dist.lokality.stan)<-t(row.names(lokality))[which(is.na(lokality$pH)==F)] # pridani nazvu sloupcu head(dist.lokality.stan) write.table(dist.lokality.stan, file="dist.lokality.stan.csv", sep=";") # ulozeni matice - format csv write.table(dist.lokality.stan, file="dist.lokality.stan.txt", sep="\t") # ulozeni matice - format txt ########## # Priklad 2: Vytvorte asociacni matici abundanci ryb, pozijte vhodny asociacni koeficient. ########## ryby<-read.table('ryby.csv', sep=";", header=TRUE, dec=".") head(ryby,10) dim(ryby) is(ryby) names(ryby) row.names(ryby)<-ryby[,1] # ulozeni nazvu lokalit do nazvu radku ryby<-ryby[,-1] head(ryby,10) summary(ryby) ryby.mis <- ryby%>% na.omit() # odstrani chybejici hodnot ?vegdist #jedna z mnoha funkci pro vypocet asociacni matice dist.ryby<-vegdist(ryby.mis, "jac") # vypocet asociacni matice na abundancich(poctech) druhu = 1 - Sorensenův asymetrický koeficient podobnosti pro data abundancí dist.ryby.b<-vegdist(ryby.mis, "jac", binary=T) # vypocet asociacni matice na ne/pritomnosti druhu (binarnich prom.) = 1 - Jaccard dist.ryby.b<-as.data.frame(as.matrix(dist.ryby.b)) # doplneni na ctvercovou matici a pak prevedeni na tabulku dist.ryby.b #POZOR!!!! Podobnosti jsou pomoci funkce 1-podobnost prevadeny na vzdalenosti!!! (na diagonale jsou nuly) write.table(dist.ryby.b, file="dist.ryby.b.csv", sep=";") # ulozeni matice # ------------------------------------------------------------------------ # Vypocet Mantelova testu ------------------------------------------------ # ------------------------------------------------------------------------ ########## # Priklad 3: Zjistete zda spolu souvisi fyzicko-chemicke charakteristiky lokalit a slozeni spolecenstev na lokalitach. ########## # Reseni: Zavislost matic lokality.stan a ryby testujeme pomoci mantel testu ?mantel mantel(dist.lokality.stan,dist.ryby.b, method="spearman", permutations=1000) # Asociacni matice jsou statisticky vyznamne korelovany (p < 0.05). # Koeficient korelace > 0 -> kladna korelace -> cim vice jsou lokality odlisne na zaklade charakteristik prostredi, # tim vice se lisi abundanci ryb a naopak cim podobnejsi si jsou lokality na zaklade charakteristik prostredi, tim podobnejsi # si jsou na zaklade vyskytu zivocisnych druhu.