我正在尝试使用渔业数据集构建物种累积曲线。可以使用素食等包装轻松完成。但是,我想建立一个基于不同类型的努力(这里的钩子数量)的曲线,而不是常见的类型,例如采样的样本或个体。我找不到改变努力类型的方法。 是否有可以进行此类修改的包?
玩具数据集的一个例子。物种取样和钩子数量
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))
答案 0 :(得分:1)
素食主义者的R-Forge和github版本增加了物种积累权重的论证(specaccum()
函数)。这来自文档:
w: Weights giving the sampling effort.
你可以尝试这个版本(但是你需要自己构建软件包:R-Forge太功能了,无法提供软件包)。
增加了w
权重参数,因为有人要求这样做。它尚未发布,因为要求添加的人失去了兴趣,并且从未测试过这是否是需要的。如果您对此进行测试并发现它很有用,那么它将会发布。
答案 1 :(得分:0)
如果我很清楚,你想要从不同样本中发现的物种个体的列联表中绘制物种丰富度与采样努力量。我不熟悉纯素包,但您可以按照以下方式引导您的数据。在第二个例子中,您可以尝试通过添加另一个循环来增加点数,该循环在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)
}