平均物种积累曲线?

时间:2017-11-03 18:45:23

标签: r vegan

我有兴趣在多次调查中生成平均物种积累曲线(每分钟调查的鱼类种类)。

我理解specaccum()(素食主义者)通常用于观察物种的积累,因为更多的地点被采样。

这个特殊的样本设计正在研究物种在使用调查工具(摄像机测量鱼)时如何随时间累积。这个想法是摄像机在水中浸泡的时间越长 - 应该观察到越多的鱼类。然后我重复了这个过程多次,最后得到了几个类似于BCI数据集的表,每一行都是一分钟的时间。

单次15分钟的试用可能如下:

library(vegan)

counts = c(0,0,0,0,0,
       0,0,0,0,0,
       1,2,3,4,5)



#Survey over 15 minutes
fish = data.frame(Time = seq(1,15,1),
              S.mys = sample(counts,15,replace = T),
              S.ros = sample(counts,15,replace = T),
              S.pau = sample(counts,15,replace = T),
              S.ens = sample(counts,15,replace = T),
              S.con = sample(counts,15,replace = T),
              S.sax = sample(counts,15,replace = T),
              S.sim = sample(counts,15,replace = T))

#taken from the help file example:
sp1 = specaccum(fish)
sp2 = specaccum(fish, 'random')
plot(sp1, ci.type = 'poly',col = 'blue',lwd = 2, ci.lty = 0, ci.col = 'lightblue')
boxplot(sp2,add = T, col = 'peachpuff')

现在如果我进行了多次试验,(几个15分钟的时间段)有没有办法平均物种积累结果?

1 个答案:

答案 0 :(得分:1)

如果您想获得每项研究的平均值,您可以将所有研究数据放入一个data.frame并使用data.table进行汇总。

require(data.table)
fish<-cbind(fish,Study=rep(1,15))   #Add study column
setDT(fish)                         #Add class data.table
fish[, lapply(.SD, mean), by=Study] #Aggregate data by study and take mean

   Study Time    S.mys S.ros    S.pau     S.ens S.con     S.sax
1:     1    8 1.266667   0.8 1.666667 0.2666667   1.6 0.6666667
      S.sim 
1: 1.133333