我正在尝试为我拥有的数据集计算Simpson和Shannons多样性指数。列出了我的数据,据此,我的数据按照种类(观察)以行和列内的位置进行组织。我正在努力寻找任何可以使用的包,因为我看到它们总是要求以“站点”作为行而“物种”作为列来组织数据,而这并不是我的数据的组织方式。
我是否可以用经典的R方式整理数据,计算出上述多样性指数?
这是我的数据图片。每个观察结果都是一行
答案 0 :(得分:0)
您可以使用dcast
中的reshape2
将社区数据转换为例如vegan
库。
# model data
set.seed(123)
genus <- c("Arothron", "Pomacentrus","Halichoerus")
transect <- LETTERS[1:10]
df <- data.frame(transect = sample(transect, 1000, replace = TRUE),
genus = sample(genus, 1000, replace = TRUE))
# reshape data
library(reshape2)
df$Freq = 1
spe <- dcast(df, transect ~ genus, value.var = "Freq", fun.aggregate = sum)
rownames(spe) <- spe[, 1]
spe <- spe[, -1]
# calculate indices
library(vegan)
diversity(spe, index = "shannon")
diversity(spe, index = "simpson")