列数据的多样性索引

时间:2018-07-19 16:51:01

标签: r

我正在尝试为我拥有的数据集计算Simpson和Shannons多样性指数。列出了我的数据,据此,我的数据按照种类(观察)以行和列内的位置进行组织。我正在努力寻找任何可以使用的包,因为我看到它们总是要求以“站点”作为行而“物种”作为列来组织数据,而这并不是我的数据的组织方式。

我是否可以用经典的R方式整理数据,计算出上述多样性指数?

这是我的数据图片。每个观察结果都是一行

my data is organised in such a way, where each row is a new observation

1 个答案:

答案 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")