Česká verze stránek není od roku 2013 aktualizována. Aktuální verzi této stránky najdete v její anglické verzi zde.
Budete potřebovat následující data z údolí Vltavy:
vltava.spe <- read.delim ('http://www.davidzeleny.net/anadat-r/data-download/vltava-spe.txt', row.names = 1) vltava.env <- read.delim ('http://www.davidzeleny.net/anadat-r/data-download/vltava-env.txt')
Počet druhů ve snímku:
specnumber (vltava.spe)
Funkce je vlastně jen jednoduchý obal pro následující funkci:
rowSums (vltava.spe > 0)
Pokud chcete spočítat počty druhů v jednotlivých skupinách vzorků, můžete do funkce specnumber přidat argument groups
(skupiny vezmeme z klasifikace fytocenologických snímků do klastrů v proměnné vltava.env$GROUP
):
specnumber (vltava.spe, groups = vltava.env$G) 1 2 3 4 189 145 146 216
Průměrné počty druhů ve vzorcích patřících do jednotlivých klastrů spočteme takto1):
tapply (specnumber (vltava.spe), vltava.env$G, FUN = mean) 1 2 3 4 34.20000 26.07692 28.15625 45.42105
Výpočet Shannon-Wienerova indexu diverzity:
H <- diversity(vltava.spe, "shannon")
a z něj odvozená vyrovnanost (Pielou's evenness, equitability):
J <- H/log (specnumber (vltava.spe))
Výpočet Simpsonova indexu diverzity:
simp <- diversity(vltava.spe, "simpson")
Whittakerova beta diverzita, vypočtená jako β = γ/mean (α) - 1:
ncol(vltava.spe)/mean(specnumber(vltava.spe)) - 1 [1] 9.612284
Sørensenův index nepodobnosti pro jednotlivé páry vzorků:
beta <- vegdist (vltava.spe, binary = TRUE, method = 'bray') mean (beta) [1] 0.7527493
Bray-Curtisův index nepodobnosti je vlastně Sørensenův index počítaný na kvantitativních datech, proto když data převedeme do binární (presenčně-absenční) podoby argumentem binary = TRUE
, počítáme Sørensenův index.
Funkce, která počítá 24 indexů betadiverzity, které jsou popsány v článku Koleff et al. (2003) 2). Náhled na označení jednotlivých indexů lze získat takto:
betadiver (help = T)
1 "w" = (b+c)/(2*a+b+c) 2 "-1" = (b+c)/(2*a+b+c) 3 "c" = (b+c)/2 4 "wb" = b+c 5 "r" = 2*b*c/((a+b+c)^2-2*b*c) 6 "I" = log(2*a+b+c)-2*a*log(2)/(2*a+b+c)-((a+b)*log(a+b)+(a+c)*log(a+c))/(2*a+b+c) 7 "e" = exp(log(2*a+b+c)-2*a*log(2)/(2*a+b+c)-((a+b)*log(a+b)+(a+c)*log(a+c))/(2*a+b+c))-1 8 "t" = (b+c)/(2*a+b+c) 9 "me" = (b+c)/(2*a+b+c) 10 "j" = a/(a+b+c) 11 "sor" = 2*a/(2*a+b+c) 12 "m" = (2*a+b+c)*(b+c)/(a+b+c) 13 "-2" = pmin(b,c)/(pmax(b,c)+a) 14 "co" = (a*c+a*b+2*b*c)/(2*(a+b)*(a+c)) 15 "cc" = (b+c)/(a+b+c) 16 "g" = (b+c)/(a+b+c) 17 "-3" = pmin(b,c)/(a+b+c) 18 "l" = (b+c)/2 19 "19" = 2*(b*c+1)/((a+b+c)^2+(a+b+c)) 20 "hk" = (b+c)/(2*a+b+c) 21 "rlb" = a/(a+c) 22 "sim" = pmin(b,c)/(pmin(b,c)+a) 23 "gl" = 2*abs(b-c)/(2*a+b+c) 24 "z" = (log(2)-log(2*a+b+c)+log(a+b+c))/log(2)
Pokud chci spočítat například Whittakera mezi páry jednotlivých vzorků3):
beta <- betadiver (vltava.spe, 'w') mean (beta) [1] 0.7527493
Funkce betadiver
vrací matici distancí (nepodobností), s výjimkou 10 “j” a 11 “sor”, tedy Jaccardova a Sorensenova indexu podobnosti (nedá se s nimi počítat jako s distancemi!). Pro výpočet libovolného indexu diverzity můžete také použít funkci designdist (library vegan)
.
Akumulační křivka založená na plochách (případně na individuích)
spe1 <- specaccum (vltava.spe, method = 'random') plot (spe1, ci.typ = 'poly', ci.col = 'grey' )
spe4 <- by (vltava.spe, vltava.env$GROUP, specaccum, method = 'random') max.y <- max (unlist (lapply (spe4, FUN = function (x) max (x$richness)))) max.x <- max (unlist ((lapply (spe4, FUN = function (x) max (x$sites))))) min.x <- min (unlist ((lapply (spe4, FUN = function (x) max (x$sites))))) plot (spe4[[1]], xlim = c(0,max.x), ylim = c(0, max.y)) for (i in seq (1,4)) plot (spe4[[i]], add = T, ci.type = 'poly', ci.col = i) abline (v = min.x) legend ('topright', col = 1:4, legend = 1:4, pch = 15)
Pro data z údolí Vltavy nakreslete scatterplot vztahu počtu druhů a půdního pH (měřeného ve vodě).
Použijte data z Gentryho lesních transektů (seznamte se nejdříve s popisem dat, a pak zkopírujte skript pro import dat - získáte tak dva soubory, gentry197
a gentry.coord
- první je list s maticemi druhy x plochy z jednotlivých lokalit, druhý je datový rámec se souřadnicemi, nadmořskou výškou a srážkami).
Spočtěte následující hodnoty:
Nakreslete následující obrázky:
Lat
v souboru gentry.coord
) do jednoho obrázku - hodnoty gamma diverzity zobrazte modře, hodnoty alfa diverzity červeně, a y-osu obrázku zlogaritmujtetapply
rozdělí hodnoty v první proměnné (počet druhů ve vzorcích) do skupin podle druhé proměnné, a na každou skupinu aplikuje funkci mean
.