0

我正在尝试使用渔业数据集构建物种累积曲线。使用 Vegan 等软件包可以轻松完成。但是,我想根据与常见类型(例如样本或样本个体)不同的努力类型(此处为钩子数量)构建曲线。我找不到改变努力类型的方法。有没有可以进行这种修改的包?

玩具数据集的一个例子。采样的物种和钩子的数量

for (i in 1:50){
  set.seed(645)
  aaa <- data.frame(sample(1:100, 100, replace=TRUE))
  names(aaa) <- paste("spvegantest.",i,sep="")
  assign(paste("spvegantest.",i,sep=""),aaa)}
list_sp <- lapply(ls(pattern="spvegantest."), get)
dataset <- data.frame(Sample_ID= 1:100, list_sp, Nhooks = sample(500:2500, 100, replace=TRUE))
4

2 回答 2

1

vegan 的 R-Forge 和 github 版本添加了关于物种积累权重的参数(specaccum()函数)。这是来自文档:

w: Weights giving the sampling effort.

你可以试试这个版本(但是你需要能够自己构建包:R-Forge 功能太差,无法提供包)。

添加权重w参数是因为有人要求这样做。它尚未发布,因为要求添加的人失去了兴趣并且从未测试这是否是需要的。如果您对此进行测试并发现它有用,它将发布。

于 2013-11-26T09:11:56.167 回答
0

如果我很好理解,您想从在不同样本中发现的物种个体的列联表中绘制物种丰富度与抽样努力。我不熟悉 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)
}
于 2013-11-18T13:30:18.910 回答