如果我很好理解,您想从在不同样本中发现的物种个体的列联表中绘制物种丰富度与抽样努力。我不熟悉 vegan 包,但您可以按以下方式引导数据。在第二个示例中,您可以尝试通过添加另一个循环来增加点数,该循环在 i 的每一步进行多次采样。
真实的数据曲线应该看起来像一个 sqrt 函数,而这里它是平坦的,因为每个样本都包含所有物种。在渔业中,捕鱼努力通常以在海上航行的船数 x 天数来衡量,船只应该具有相同的拖网面积、鱼钩数量或钓鱼线的总长度是其他常见的衡量标准。
count.sp <- function(sample.vec, dataset){
sample.presence <- dataset[sample.vec, grep("sp.", names(dataset))] != 0
overall.presence <- apply(sample.presence, 2, sum) != 0
n.species <- sum(overall.presence)
return(n.species)
}
# Sampling effort = number of sample
plot(c(0, nrow(dataset) - 1), c(0, 1.5*length(grep("sp.", names(dataset)))), type="n",
xlab="Sampling effort", ylab="Species richness")
for (i in 1:(nrow(dataset) - 1)){
sample.vec <- sample(seq(along=dataset$Sample_ID), i)
points(i, count.sp(sample.vec, dataset), pch=19, cex=0.5)
}
# Sampling effort = number of hooks
plot(c(0, sum(dataset$Nhooks)), c(0, 1.5*length(grep("sp.", names(dataset)))), type="n",
xlab="Sampling effort", ylab="Species richness")
for (i in 1:(nrow(dataset) - 1)){
sample.vec <- sample(seq(along=dataset$Sample_ID), i)
points(sum(dataset$Nhooks[sample.vec]), count.sp(sample.vec, dataset), pch=19, cex=0.5)
}