shannon.evaluate.core {EvaluateCore} | R Documentation |
Compute the Shannon-Weaver Diversity Index (\(H'\)), Maximum diversity (\(H'_{max}\)) and Shannon Equitability Index (\(E_{H}\)) (Shannon and Weaver 1949) to compare the phenotypic diversity for qualitative traits between entire collection (EC) and core set (CS).
shannon.evaluate.core(data, names, qualitative, selected)
data |
The data as a data frame object. The data frame should possess one row per individual and columns with the individual names and multiple trait/character data. |
names |
Name of column with the individual names as a character string |
qualitative |
Name of columns with the qualitative traits as a character vector. |
selected |
Character vector with the names of individuals selected in
core collection and present in the |
Shannon-Weaver Diversity Index (\(H'\)) is computed as follows.
\[H' = -\sum_{i=1}^{k}p_{i}log(p_{i})\]Where \(p_{i}\) denotes the proportion in the group \(k\).
The maximum value of the index (\(H'_{max}\)) is \(\ln(k)\). This value occurs when each group has the same frequency.
The Shannon equitability index (\(E_{H}\)) is the Shannon diversity index divided by the maximum diversity.
\[E_{H} = \frac{H}{\ln{(k)}}\]A data frame with the following columns.
Trait |
The qualitative trait. |
EC_H |
The Shannon-Weaver Diversity Index (\(H'\)) for EC. |
EC_H |
The Shannon-Weaver Diversity Index (\(H'\)) for CS. |
EC_Hmax |
The Maximum diversity value (\(H'_{max}\)) for EC. |
CS_Hmax |
The Maximum diversity value (\(H'_{max}\)) for CS. |
EC_EH |
The Shannon Equitability Index (\(E_{H}\)) for EC. |
CS_EH |
The Shannon Equitability Index (\(E_{H}\)) for CS. |
Shannon CE, Weaver W (1949). The Mathematical Theory of Communication, number v. 2 in The Mathematical Theory of Communication. University of Illinois Press.
####################################
# Use data from R package ccChooser
####################################
library(ccChooser)
data("dactylis_CC")
data("dactylis_EC")
ec <- cbind(genotypes = rownames(dactylis_EC), dactylis_EC[, -1])
ec$genotypes <- as.character(ec$genotypes)
rownames(ec) <- NULL
ec[, c("X1", "X6", "X7")] <- lapply(ec[, c("X1", "X6", "X7")],
function(x) cut(x, breaks = 4))
ec[, c("X1", "X6", "X7")] <- lapply(ec[, c("X1", "X6", "X7")],
function(x) factor(as.numeric(x)))
head(ec)
core <- rownames(dactylis_CC)
quant <- c("X2", "X3", "X4", "X5", "X8")
qual <- c("X1", "X6", "X7")
####################################
# EvaluateCore
####################################
shannon.evaluate.core(data = ec, names = "genotypes",
qualitative = qual, selected = core)