我有兴趣在多次调查中生成平均物种积累曲线(每分钟调查的鱼类种类)。
我理解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分钟的时间段)有没有办法平均物种积累结果?
答案 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